Skip to main content
Internet Archive's 25th Anniversary Logo

Full text of "Captain 80 Basic Adventures"

See other formats


CONTENTS 
Part I 



Chapter 1 On the Road to Adventure 3 

Chapter 2 What is Adventure? 5 

Chapter 3 How to Play Adventure 7 

Chapter 4 How to Write an Adventure 10 

Chapter 5 Ten Adventure Ideas 12 

Chapter 6 Where to Sell Adventures 15 

Chapter 7 The Adventure Hit Parade 17 



Part II 

The Adventure Generator, by David Huntress uhe 



tale 
i as 
ess, 
ior, 
nto 

Part III Se 

lOSt 



Chapter 1 Adventure Generator, Documentation and Comments 21 

Chapter 2 Adventure Generator, Sample Run 23 

Chapter 3 Adventure Generator Program 27 



Eighteen BASIC Adventures to Type In fS 

the 



BASIC Adventures 1 



ulty 
irer 

ure 



Chapter 1 Atlantean Odyssey Teri Li 37 

Chapter 2 Dog Star Lance Micklus 87 

Chapter 3 Thunder Road Don & Freda Boner 97 A 

Chapter 4 Deadly Dungeon Don & Freda Boner 107 ' ler - 

Chapter 5 Revenge of Balrog Don & Freda Boner 117 " 1,1 ° a 

Chapter 6 The Fortress at Times-End Don & Freda Boner 125 M the 

Chapter 7 Temple of the Sun Jack Powers 134 ^ not 

Chapter 8 Lost Ship Charles Forsythe 148 but 

Chapter 9 Spider Mountain Teri Li 157 ,ter 

Chapter 10 Lost IJutchman's Gold Teri Li 167 vith 

Chapter 11 Journey to the Center of the earth Greg Hassett 177 tne 

Chapter 12 King Tute Tomb Greg Hassett 187 f S9 

Chapter 13 Voyage % Atlantis Greg Hassett 197 lsa 

Chapter 14 House of Seven Gables Greg Hassett 206 5ide 

Chapter 15 Sorcerer's Castle Greg Hassett 216 and 

Chapter 16 CIA Adventure Hugh Lampert 225 

Chapter 17 Arctic Adventure Harry McCracken 234 his 

Chapter 18 Adventureland Scott Adams 241 ling 

for 
w a 
ries 



s 




Chapter One 

On the Road to Adventure 



Adventure! The very word conjurs forth visions 
of high intrigue and danger. From the very first time 
that Oog, the first Cro-Magnon novelist, painted 
crude pictures of the hunt on the walls of his cave, 
man has stretched his imagination to include every 
possible personal danger to add to the spice of life. 

Down through the ages, the exploits of one 
adventurer became the fantasy life of another. The 
everyday existence of the farmers, villagers and 
shopkeepers of early times, while far from 
uneventful, was brightened considerably by the 
entrance of a strolling bard, a song-singing 
storyteller; whose tales of Knights and Dragons and 
rescued maidens, by verse and music magnified 
their exploits to the point where they were larger 
than life. Needless to say, the listeners to these 
fanciful tales longed for the adventuring life, though 
few dared to embrace it. 

The Warrior, fighting man that he was, was 
glorified as tales of his courage echoed and 
reverberated among the common folk. The Soldier 
of Fortune became the hero of the masses. Thus, 
the adventurer in legend and song became the 
champion of the oppressed, a foe of evil and role 
model for the common people, many of whom lived 
such a spartan existence that no brightness existed 
in their lives beyond the exploits of adventurers. 

Not to be outdone, the rogue - the merry thief 
who robbed from the rich, gave to the poor and 
kissed all the pretty maidens - emerged as another 
branch of the adventurer's tree. This rascal was 
beloved of the people for doing what they dared not, 
striking hit and run blows at the hated aristocrats. 
Punishment for thievery, (merry or not), ranged 
from having one's hand removed from his arm, to 



the more permanent hanging from a gallows in the 
town square. 

Throughout the history of adventuring, the tale 
tellers focused on qualities of human spirit, such as 
self sacrifice (for a cause or a person), cleverness, 
strength (of spirit or body), a sense of humor, 
natural leadership ability, courage and dedication to 
duty. The most touted among the desirable 
qualities required of an adventurer was brains. The 
ability to analyze a situation or solve a puzzle 
against time has always been the single most 
important prime requisite asked of a challenger of 
the fates. And so, as the sophistication of the 
audience increased through the ages, the difficulty 
of the puzzles, and the prowess of the adventurer 
increased also. 

With the advent of literacy, the adventure 
observer became the adventure dreamer. 
Communication skills were no longer limited to a 
few songsingers flitting unreliably around the 
countryside. A person who could read need not 
share the adventuring experience with anyone but 
the writer. He lived the adventure as the writer 
portrayed it and became intimately acquainted with 
the hero of the saga. He now knew that the 
adventurer was mortal, with frailties and weakness 
to overcome, just as he, the reader was also. 
Adventuring was almost within his grasp. As a side 
seat observer, the reader could almost feel and 
touch the story, so intimate was the detail. 

The love affair between the adventurer and his 
audience suffered a slight setback with the coming 
of motion pictures. True, the imagery was there for 
the first time. But the solo experience was now a 
shared experience, and the details of the stories 



were many times fragmented. Plus, the 
sophistication of the lives of the audience had 
escalated to the point where they were getting more 
difficult to impress. 

As graphic images through film, and later 
television, grew more and more true to life, some of 
the pitfalls of the adyenturing lifestyle became 
apparent. As the flow of blood became more 
realistic and as the camera's unblinking eye moved 
out to the battlefield, the stark reality of war all but 
removed the soldier from the ranks of the hero, 
and placed him instead in limbo, a sort of literary 
isolation, and the anti-hero emerged to the 
forefront. 

As the new adventurer, the anti-hero turned out 
to be our old friend and merry thief, plugging away 
against sometimes impossible odds. The media, 
both visual and literary, blitzed the audience with 
images of the socially outcast or deprived individual 
bucking the system - and many times failing. The 
social adventurer was capable of total but 
personally redeeming failure. 

Enter a new medium - the computer. From a 
multi-million dollar business tool to the hands of the 
average farmer, shopkeeper and literate youngster, 



was a twenty year technological slide that would see 
intelligent, interactive communicative devices 
become available to the average person. Waiting 
there for them, like an old and patient friend, was 
Adventure. 

Now the adventure was a stage set for the 
computerist, who became the hero in the story. No 
longer content to observe, he was now 
participating. With no apparent risk to life or limb, 
he could pretend to risk both for exotic causes. He 
had to exhibit all the tendencies that make a hero 
great, or the computer would kill his electronic 
counterpart. The adventure dreamer and the 
storyteller were together at last. 

But there is an epilogue to this historical jaunt. 
The adventure dreamer has taken one last step 
forward and become the storyteller as well. For 
imagination has not been destroyed by the modern 
world, it flourishes on the tapes and disks of a 
million computers large and small. The storytellers, 
professional and amateur, are presenting their 
fantasies to ever increasing numbers of adventure 
dreamers, who will inevitably do the same for 
others. Maybe this book will help. 





4 BASIC Adventures 



Chapter Two 

What is Adventure? 



Adventure is a semi-intelligent, word recognizing 
computer program which employs a novelistic style 
to present an unsolved puzzle. The word 
recognition format communicates with the user in 
the form of descriptive phrases, identifying the 
circumstances to which the user is expected to 
react. 

The overall game is bounded by a single theme. 
The solution to the puzzle, the clues to that 
solution, and even the sidetracks of a good 
adventure could (and usually will) tie into the 
theme. For example,Spi'der Mountain is set in and 
around the desert outback of a mythical kingdom 
called Graylockland. The puzzle revolves around 
the inside of that mountain, and presents some 
knotty problems: HOW do you get into the 
mountain, once it is ascertained that inside is where 
you should be? WHAT should you be carrying that 
will help you solve the puzzle? WHERE are all the 
things you need, and are there things hidden for 
which you need to search? So, the theme is carried 
into every location and the descriptions which are 
given on the screen are consistent with the fantasy 
flavor of the adventure. 

The puzzle relates to the theme. In Thunder 
Road, the theme is moonshine running in a souped 
up '57 Chevy. The solution to the puzzle is simply 
that of delivering the moonshine to the thirsty 'ole 
boys in Knawbone. The facets of the puzzle include 
the same WHAT, WHERE, HOW, as in all good 
adventures, with some clever thematic twists that 
add a whole new dimension to the game. The 
addition of the pursuit factor (the ever present 



threat of Sheriff Clemons and the Revenoors) is in 
the theme, but causes the player to behave 
recklessly in the initial playing of the game. The 
Lady Hitchhiker, the bear, the mechanical 
breakdowns, are all thematic. They all fall within the 
context of moonshine, fast cars and quiet Kentucky 
nights. 

Not so with Journey to the Center of the Earth, 
where coke machines and plush rooms have no 
thematic explanations. Of course, Journey was 
Greg Hassett's first work and his knowledge of the 
laws of theme increased as he matured in both 
programming skill and writing prowess. 

Solving the puzzle leads to reward by degree. 
Partial solutions earn partial results. Treasure is a 
typical goal within an adventure. Find all the 
treasure and you win the game. But treasure relates 
in most cases to theme, so all that glitters may not 
be what you are looking for. In Temple of the Sun, 
the puzzle is solved by accumulating enough 
artifacts to become a Shaman of the old religion. In 
Spider Mountain, the traditional fantasy theme of 
accumulating loose treasure predominates. In 
Journey to the Center of the Earth, you can get as 
much gold as you can handle, but without a 
replacement for your broken Gonkulator, the game 
is not won. 

There may also be several sub-puzzles within the 
framework of a single game. Adventure authors 
typically employ deadfall traps and unproductive 
locations to confuse the user's efforts. Mazes are a 
popular stalling agent. In some adventures it is not 
uncommon to wander for hours trying to work 



BASIC Adventures 5 



through, or out of, some impossible array of 
twisting passages with all exits leading everywhere 
but the correct way. This sub-puzzle usually has 
something important waiting at the other end. 

The deadfall trap is simply the author's way of 
keeping the player on his toes. Traps are oftimes 
thematic, sometimes implied rather than executed. 
They can be the result of blunders by the player, 
anticipated by the author. In any case, they add 
spice to the game. Once trapped, the player 
generally does not get caught again. 

Some adventures are goal-oriented rather than 
treasure-oriented. Scott Adams' classic Mission 
Impossible is theme-keyed into the controversial 
nuclear industry. No treasures in Mission - just 
perform a series of tasks - unravel the mystery and 
save the reactor. Charles Forsythe's Dragonquest 
is a goal oriented adventure: save the princess from 
the clutches of Smaegor, the dragon, before the 
sunset deadline. Charles employs the technique of 
moving specific deadlines to insure that the sun sets 
on time. This technique was popularized in Scott 
Adams' Mystery Fun House and The Count, and 
has been used successfully many times in both 
BASIC and machine code commercial adventures. 

Adventure on the whole is divided into four 
segments: Where you are, what you see (provided 
by the computer in the uppermost display), where 
you can go (portal, direction, or object capable of 
receiving you, as in ENTER BARN). WHERE is 
often evident, but sometimes must be surmised. 
Lastly, WHAT YOU CAN DO, which almost 



always must be ascertained. 

A typical top screen display YOU ARE 

on A NARROW LEDGE. YOU SEE: GOLD 
?POON LIVE HAND GRENADE (WHICH IS 
?!^G)!p1N. OBVIOUS EXITS ARE NORTH 

DOWN. . 

Your author is giving you vast amounts o 
information here. GOLD SPOON has the potential 
StKSuie. LIVE HAND GRENADE has 
the possibility of being a trap, expecially since it is 
ticking The PIN would seem to be a neutralizing 
agent for the GRENADE unless it is the : wrong [kind 
of pin (revealed by the command EXAMINE). 
Many options exist for both player and the author. 

Scott Adams, who pioneered many innovations 
in micro-computer adventures, introduced the 
concept of the PUPPET in his versions of the game. 
The puppet resides in the world of the adventure. 
He (she.it) is the eyes and ears of the adventurer 
and is the recipient of the results of the commands 
of the player. The puppet will freely use data 
provided by the computer to deliver the player's 
options to him. When the player responds with 
keyboard input, the puppet executes the command 
and literally lives or dies with the consequences. 

Adventures with a puppet are screen formatted 
with I AM, I SEE, whereas the other adventures 
address the player directly with YOU ARE, YOU 
SEE. However the presentation, careful attention 
should be given to every shred of data on the 
screen. You or your puppet's life may depend upon 
your analysis of the situation. 




Chapter Three 

How to Play Adventure 



The command mode is the trickiest part of the 
adventure. What you tell your puppet to do - he will 
do, if it is within his power. He is totally dependent 
on you for his sequence of action. He understands 
quite a vocabulary of two-word English commands 
but watch out! He takes your commands literally' 
Thus, a command of "jump" to a puppet standing 
on the edge of a ravine and faced with a live hand 
grenade, will cause him to hurtle himself out into 
space, resulting in consequences ranging from a 
soft landing to death. A command of GO NORTH 

™wl? USe him t0 do just that A command of GO 
t^c r mrt* be le 9 itim ^e, but earn a response of: 
TOO SLIPPERY, I FELL, I'M DEAD. Two reasons 
for this may be that DOWN referred to in the 
direction table could be object specific, requiring 
spiked shoes or pitons. Or, it could be a deadfall 
reserved for those willing to carry their luck one 
location too far. 

GO, GET, LIFT, PUSH, KICK SHOOT 
FIGHT, ATTACK, KILL, FEED LEAD JUMP ' 
DROP., ENTER, DRINK, PUT and PUL^are^ust a 
small sampling of the possible English verbs 
available to the adventurer wishing to communicate 
with his (computer) puppet. There are usually more 
than one hundred specific action commands 
included in a given adventure game. Some of them 
may be multi-strung, so as to communicate more 
fully. GET GRENADE may be straightforward 
enough. You now have a ticking hand grenade in 
your inventory. GET PIN will place the pin in your 
inventory also. Putting the pin into the grenade 



requires some multi-command phrasing: PUT PIN 
The computer responds, ON OR IN WHAT? The 
player types in: IN GRENADE. The computer 
responds by printing: THE TICKING HAS 
STOPPED. Now you can PUT GRENADE 
Where? IN KNAPSACK. And when the first Balrog 
comes along you have the cottonpicker right where 
you want him! 

EXAMINE gets results, even when the response 
is a seemingly non-helpful: I SEE NOTHING 
SPECIAL. That still is a clue, in that it eliminates the 
examined object from further consideration 
Sometimes, EXAMINE reveals only part of the 
story. For example, EXAMINE GRENADE may 
reveal that it is a small explosive device that is 
ticking. Or I SEE NOTHING SPEICAL appears 
indicating that the author believes the words 
HAND GRENADE and TICKING should be clues 
aplenty. 

Sometimes EXAMINE reveals something that 
should be read. EXAMINE SCROLL THERE'S 
WRITING ON IT! READ SCROLL. IT SAYS. 
EXAMINE may reveal a heretofore unknown 
characteristic. EXAMINE PIN. IT LOOKS LIKE A 
TIE TACK WITH DIAMOND CLUSTER. Aha! the 
PIN is a potential treasure! And, it still may fit the 
grenade! 

Movement commands are usually simplistic 
Directions (compass points) are displayed in the 
top screen information as: OBVIOUS EXITS ARE 
These may not be the only options. Lost in a desert 
with a road in sight, and a screen display of YOU 



BASIC Adventures 7 



SEE: A ROAD, CACTUS, SAND, the additional 
movement commands GO ROAD, GO CACTUS 
or GO SAND may be available where the obvious 
exits of NORTH SOUTH EAST WEST go 
nowhere. These may produce such diverse results 
as- OUCH! I'M STUCK FULL OF PRICKLY PEAR 
NEEDLES or I'VE BEEN BITTEN BY A 
RATTLESNAKE, I'M DEAD or I'M ON A ROAD. 1 
SEE DESERT, MOUNTAINS, TOWN. 

Not that you shouldn't try all available options 
there could just as easily be a treasure behind that 
cactus or a clue in the underbrush. Often 
EXAMINE works from a distance. If not, a curt little 
YOU CAN'T DO THAT.... YET will appear on the 
screen, followed by a nasty electronic snicker from 
deep inside the machine. (Generally, when a Yhl 
appears, the player knows he is on the right track.) 

Magic words or teleportation phrases are 
popular with many authors. SAY (whatever), and 
the whole earth spins around and you are elsewhere 
or elsewhen. This is a convenient way to travel, but 
can be a two-edged sword which might put your 
puppet into never-never land for an indefinite stay. 
Magic words are often theme specific, that is, it is an 
integral part of the puzzle and the adventure cannot 
be completed without it. In Spider Mountain, SAY 
YOHO has quite a different value than it does in 
Pirate's Cove. The second magic word in Spider is 
well hidden and can only be invoked under certain 
circumstances. 

Magical items, extremely popular in 
interpersonal fantasy role playing games, such as 
Dungeons and Dragons, have not yet come fully 
into their own in computer adventures. Since many 
authors do not subscribe to the theme method, 
magical items sometimes appear outside the logical 
sequence of the adventure world. This makes 
employing them more difficult. Additionally, a 
magical item is not identified as such, even on close 
examination. It is usually left to the player to 
exhaust every possible option when playing a game 
where he knows magic exists. 

To further complicate the use of magic, there 
may be dead zones within the adventure, where the 
magic simply will not function. Or if the magic is 
keyed to a specific item, a sword for example, the 
magic may work just fine, but you may not be able 
to FLY carrying the weight of the sword. If the 
magic is object specific, as it often is, the author may 
have left other options. If you are trapped without 
your magic, all may not be lost - look for other 



6 T Lafare so well hidden that it is nearly 
Ofanes hmgs are so (hese 

impossible to tmo ^ d 

circum stances ^ ™ ^ ^ eye for deta i, 
Approaching a srtuahon w do 
will always produce world yourself, 

if you were movmg m f e ad ^ KING from a bott l e 
r.niNG into a room and ukunimiivj . 

•?u 7 FXAM1NING it could result m the 
wrthout BWWb neyer , mbjbe 

re label, so why M off your 
pCpet needlessly? The same reasoning i appl es to 
„ t w narts of any adventure. Would you try to 

you enter a dark and sinister cavern without a 
lightsource? Not likely. 

Watch out though! The author, while bound by 
the fundamental laws of order and fair play, is never 
above a little chicanery, pun ish humor, or out and 
out silly acts as his scenerio progresses. Be on the 
lookout for double meanings m wording, 
phraseology or identification of visible items. He 
will fool you if he can, with the most obvious clues. 

Sometimes the puppet will get things wrong. 
EXAMINE RACCOON: IT'S A FURRY LITTLE 
ANIMAL PET RACCOON: THE WOLVERINE 
DEVOURS ME. Wolverine? Where did a 
Wolverine come from? WHAT DO I KNOW 
ABOUT ANIMALS? I'M JUST A PUPPET (and a 
dead one at that!). There is not a lot the player can 
do about that except calm down and get an early 
start on the next game. 

HELP is a command reserved for the desperate 
or near suicidal. HELP will oftimes produce 
inspiring little generalizations like: EXAMINING 
THINGS OFTEN HELPS. EXAMINE GRENADE: 
I SEE NOTHING SPECIAL. Arrrghhh! 

HELP can be genuinely useful, jogging your 
memory with hidden clues. At least one author has 
turned HELP to his own advantage by deducting 
points for its use. Jack Powers allows PRAY to 
substitute for HELP in Temple of the Sun. Even at 
that, the Diety may be busy, leaving the player 
temporarily up a creek. In Dragonquest, Charles 
Forsythe takes HELP one step further, and 
presents both positive and negative responses. You 
decipher which is which. 

The INVENTORY command is universal. 
INVENTORY tells what your puppet is carrying. 
Example: INVENTORY: YOU ARE CARRYING 



8 BASIC Adventures 



LIVE HAND GRENADE (WHICH IS TICKING) 
PIN SCROLL BAG (CONTAINING HORSE 
MUNCHIES). % Usually, an object must be in 
inventory before it can be manipulated. Sometimes 
the inventory counter fills up. MY HANDS ARE 
FULL is the usual response. When that occurs, 
simply DROP something and GET what you need. 

SCORE tells the player in most instances, how he 
has done in the game or what portion of the puzzle 
is left unsolved. Some SCORE commands are 
location specific, so in order to get the score, the 
puppet must be in the clearing at the front of the 
cave, etc. Many score responses include the 
number of moves in which the game was 
completed. Some adventurers like to replay a game 
to see how few moves they can make and still win. 

SAVE GAME is a feature available on most 
adventures. This command allows the player to 
save the game in progress before he tries something 
really dangerous. Saving the game before getting 
the hand grenade would be one way to get 
insurance for the puppet in case the thing explodes 
in his face. Some adventure addicts prefer to play a 
game without the SAVE feature, simply because 
they feel it spoils the laws of chance. Death 



Drednaught does not even have a save game 
routine, and the deadfalls in it are numerous. 

Playing adventure can be a blast or a terminally 
frustrating experience, depending upon how it is 
played. It helps sometimes, to remember some 
simple guidelines for adventure players: 

1. WHERE can I go? Are the posted directions 
the only available location changes? If not, what 
command combination will get me to the new 
location? 

2. WHAT can I see? Can I get it? Will it hurt me 
if I do? Once I have it, how can I manipulate it to my 
advantage? Is it ultimately useful or a ploy to get me 
to carry more things than I need? 

3. If I can see it and go to it, HOW can I get to it 
by the path of least resistance? Is there a visible 
danger associated with what I see? Will examining it 
help? 

4. WHAT can I do when I get to the new 
location or obtain the object that will help me solve 
the puzzle or win the game? 

5. Am I thinking logically, or if I have an illogical 
author, am I thinking illogically? In short, are the 
author and player on the same wavelength? 

These rules should enhance your game. 




BASIC Adventures 9 



Chapter Four 

How to Write an Adventure 



Adventure is first and foremost a puzzle. The 
adventure author must be prepared to satisfy a lust 
for the unsolvable, while at the same time providing 
enough clues so the novice will not be 
overwhelmed. The clues should be relevant to the 
overall solution, but should stand as entertaining 
individual pieces in their own right. 

Make a map. The locations can be sequentially 
inter-related, where one location progresses into 
another, and side locations are incidental. In a 
sequential adventure there may be several trunks 
from which to branch, but only one mam 
pathway to the goal. FROM THE WOODS to the 
CUFF to the LEDGE to the BEACH, may be one 
trunk, with a TREE branching from the WOODS, a 
CAVE branching from the LEDGE and a btA 
GROTTO branching from the BEACH. Now 
digging in the sand to obtain a buried chest may be 
the intended reason for coming down to the beach, 
but the SHOVEL may be in the SEA GROTTO and 
a KEY to open the chest may be in a BIRD NEST in 
thp TREE To complicate things, a 
CARNIVOROUS ADVENTURER CHOMPER 
may be waiting in the CAVE, whose only purpose in 
life is to munch on anyone who enters! 

Now the chest, which came from the beach, may 
be the only container capable of holding the 
treasure, which can only be obtained by going from 
the woods to the Sorcerer's cabin, which has a trap 
door hidden behind an Alchemist's cabinet, which 
opens to reveal a flight of stairs leading to a cavern 
with three exits, two of which contain more 
Carnivorous Adventure Chompers (cousins no 



doubt, of the one in the cave), who are willing to do 
their thing. So as the trunk moves forward and the 
branches are explored, the GOAL is achieved. 
Then an alternate exit may be provided, thereby 
uniting the trunks, or backtracking may occur. 

Where the map comes in is simply keeping 
track of all the branching and making sure the 
program flows logically, so there will be no 
disappointed players. 

Once your map is drawn, and the locations are 
numbered, the process of filling the locations with 
interesting things begins. Never have an empty 
room! An empty room is the plotline equivalent of 
death! Make things happen in your locations. The 
TREE for example, contains a bird NEST which is 
revealed by EXAMINING TREE after the puppet 
has climbed it. The BEACH may have flotsam and 
jetsam on it which might seem worthless until a 
MAZE comes up and the necessity for dropping 
something arises. GO OCEAN, as someone 
inevitably will, and there swims a great white shark. 
You think that the puppet will not move in a hurry if 
he is unarmed. But if you see water or nothing 
special, then (Ho Hum), maybe this isn't as much 
fun as you thought it would be. 

Do not be afraid to be funny. Without question, 
the greatest gag ever pulled in an adventure was 
done in Pirate's Cove. The legend of Scott and the 
MONGOOSE will live in the annals of infamy as the 
coup of all times. I won't spoil it for you by revealing 
the punchline, but if I ever need a cousin to 
RIKKI-TIKI-TAVI, I will not call Scott. 



Twists of words and unfamilarities are good 
devices for the author to employ in making his 
adventure interesting. A potato masher which 
shows up in an adventure whose theme tolerates 
modern or semi-modern devices, might be carried 
around or left lying around for hours before anyone 
realizes that the thing is a World War II German 
hand grenade! A twist of the tongue will have your 
audience talking about your work long after it is 
buried under stacks of other finished games. 

Choose a recognizable theme. In Spider 
Mountain it is evident from the title that the 
mountain is the goal. Although the player is not 
quite certain what he is looking for, he is led to 
believe from the onset that it is somehow tied to the 
mountain. Once he exhausts the side trunks and 
solves the equipment portion of the adventure, he is 
ready to tackle the actual puzzle, which is the entry 
into and the successful exit, with the goodies, from 
the mountain. 

Each and every location in the adventure should 
be tied to the theme. Therefore Thunder Road's 
hillbillies would be out of character in Lost Ship and 
Spider Mountain's Ores would be out of place in 
Atlantean Odyssey. Modern or technologically 
oriented equipment would be out of place in a 
fantasy culture. Sometimes a turn of phrasing can 
help. A shovel becomes a digtool, a rifle becomes a 
crossbow, a pistol a hand held dartshooter. 
Contextually these items fit in their own worlds and 
so lend authenticity to the adventure. 

Note the careful research Jack Powers put into 
the details of Temple of the Sun. At the very least, if 
they are not true to life, they are consistent within 
his story. The same goes for Don Boner's Thunder 
Road. Every location, every situation, smacks of 
authenticity, therefore the adventure is believable. 

Scattering clues and equipment throughout the 



theme area is time honored and proven. For those 
adventures with major sidetrunks, this is the only 
way. If the author does it this way, he should try to 
avoid being obvious. Clues that are too easy lend to 
boredom with the game. Avoid overkill though, 
clues that are impossible lead to frustration and 
abandonment. The user expects logic and order as 
much as any reader of fiction. If the author gives him 
trumped-up solutions, he will walk away in disgust 
and not come back. 

Minor, or sub theme, branches lend spice to the 
game. Though they must answer to the laws of the 
adventureworld, they may be radical 
pocket-themes, each with a unique set of dangers 
and puzzles. One of the best examples of sub- 
theme use is Scott Adams' Strange Odyssey. The 
overall theme is the exploration of the dimensional 
interlock structure. The sub-themes are the 
individual sub-theme worlds, each of which 
contains a puzzle and a treasure. This classical 
masterpiece is one of Scott's best. All the elements 
are there. The clues are progressive. Just getting 
inside the interlock is a chore. Getting the hang of 
all the devices hightens the suspense. The ultimate 
solution is logical, and most of all - rewarding. 

Taking a lesson from Srrange Odyssey: be 
rewarding. Give the player something to keep with 
him after the game is played to its completion. You 
will want to sell other adventures to that player. 

Be aware of the competition. Know exactly who 
is writing on what themes, so as to avoid 
duplication. If you have trouble getting a theme, 
spend a day in the library. You will come away with 
a full notebook of exciting ideas. 

Above all, be entertaining, be clever, be language 
concious and be thorough. Write the adventure as 
you would wish the professionals to write for you. 
Then you will have a winner. 




Chapter Five 

Ten Adventure Ideas 



It RESCUE THE RANGER, (space opera). As a 
member of the elite Terran rapid strike force, you 
are assigned the almost impossible task of 
recovering Thomas O'Neal, Captain, Special Agent 
on Deepwell, an ancient world where the entire 
civilization is based underground. Naturally, you 
are armed, but they are expecting you and prepare 
a nerve-shocking subterranean surprise. 

2. THE BEST WEAPON EYES HAVE EVER 
SEEN, (Dungeons and Dragons). It glitters like the 
sunrise on the Lake of Illusions, its jewels sparkle 
with incredible beauty and value. But it is more, it 
contains magic locked in its special composition 
that could wreck the universe if it came into the 
wrong hands - and the wrong hands have it! 
Penetrate the dank cave where the cunning 
clansmen of the Thieve's Guild have much treasure 
stored, including the fabled sword. 

3 THE BOAT'S SINKING AND I'M IN THE 
BOTTOM INSTEAD OF THE TOP (history 
transcribed). There you were just minding your 
own business when this Swedish cargo ship ripped 
a boxcar sized hole in the port side. The SS 
PASSENGER sinks like a teen idol turned twenty 
one. You know the layout of the ship though, you 
know there are diving suits aboard, so escape is 
possible. Can you do it before the last compartment 
floods? 

4. IF THIS IS MANHATTAN THEN I BETTER 
CHECK MY HANDCUFFS, (drama in real life). 
Deliver the top secret papers in your briefcase to 
the CIA man in Central Park. Can you tell the 



difference between the KGB and the Muggers? 

5 WHY AM I CLIMBING THIS MOUNTAIN IF 
THE TREASURE IS IN A TUNNEL INSIDE, 
(fantasy). In order to get inside the mountain, you 
have to scale the dangerous east face, which is 
laden with false trails and treacherous deadfalls. 
Once in the Cave of Winds, recovery of the amulet 
of Alakazanzar is dependent on your ability to deal 
with the Medusa who guards the inner chamber. 

6 IF THIS IS ANOTHER ONE OF THOSE 
HOKEY AIRPORT MOVIES I'M GOING OUT 
FOR POPCORN, (improbable disasters). You are 
a passenger aboard an Air Bermuda 747 which 
ditches in the sea. Everyone has escaped but you. 
Time has run out and the plane sinks. As it settles to 
the bottom you finally manage to free yourself. The 
water gets higher and higher, finally covering you. 
But instead of blacking out, you discover you can 
breathe. Out of one of the windows you can see a 
shimmering underwater city. Now the mystery 
begins. 

7. HANGING AROUND DERELICT 
SPACESHIPS COULD GET YOU TRAMPED 
ON, (space opera). You have been assigned to 
investigate an alien object that has entered the solar 
system on a trajectory from Star Rim, an area of 
gasses and active black holes. An examination of 
the computer banks by your hand-held terminal 
reveals that the ship is a ticking time bomb, capable 
of an awesome anti-matter explosion which can 
warp the very fabric of time and space, causing 
chaos and massive destruction in the galaxy. Your 



12 BASIC Adventures 



job is to disarm the bomb using clues given by your 
terminal and objects located around the ship. You 
need to disarm the device in time. Can you? 

8. THEY DROPPED ONE LITTLE BOMB AND 
NOW THE WHOLE PLANET IS A MESS, (future 
shock). You made it to the cyro-sleeper, (freeze 
chamber), before the holocaust, and now that you 
are awake (300 years later), the world has changed 
radically. Mutant Felinas Maximus' (big cats!) run 
the new world, where true humans are nearly 
extinct. You have one chance, the ancient 
subterranean monorail into the Forbidden City. 
There, the largest cyro-project of your time was 
activated with three hundred humans from your 
time in suspended animation. But the Felinas were 
not the only things that mutated into intelligence. 
Rats, dogs and other mamals evolved upward, while 
Homo Sapiens regressed. Can you survive the 
danger and horror of the city and awaken the hope 
of mankind? 

9. IF YOU LIT A MATCH ON JUPITER 
WOULD THE FIRE GET YOU CHARGED WITH 
ARSON, (space opera). Your assignment is the first 
manned Jupiter expedition, in a spunky little 
methane diver called COURAGE SEVEN. It is little 
more than a gravity braced hardsuit with 
appendages operated internally by you. But this 
seemingly harmless jaunt gets out of hand when 
you discover signs of civilization, a domed city 
which seems to have been occupied by Air 
Breathers! But where are they? How did they 
evolve on the stormy surface of Jupiter? And are 
they the only life form here? The mystery is yours. 

10. IF THIS IS POLITICS I'M GLAD I'M NOT 
PRESIDENT, (future shock). Casino of Death is 
where all political prisoners go for one last chance 
to gain freedom. If you can win enough credits 
inside the casino to crack all the one-armed 
assassins in the Gauntlet, you can walk away a free 
man. But in the Gauntlet, when you win, you lose, 
so try to keep those sevens from coming up. 

Elaborations on these themes is highly 
possible. For example, in theme one, by changing 
the goal item from the person of the imprisoned 
Ranger to that of a critical medical formula, and 
leaving the other parts of the scenario intact, you 
have the makings of a fine Space-Hospital drama. 
Or suppose you wanted to be anti-heroic. You 
could be assigned to kill the captured ranger, as an 
agent for a corrupt official, with the Deepwellians as 



the good guys trying to expose the bad boss. 

In theme two, by adding the element of chase, 
and (or) a finite time frame, the game is immediately 
spiced up. Now make the combat scenario object 
specific, the Sword will not function without a 
certain scroll, located out on one of the branches 
and Voila', excitment and plot par excellence. 

Theme three could be changed from accident 
triggered to bomb triggered or it could be a double 
theme. Defuse the bomb and the accident occurs. 
The accident is move-timed so that after a certain 
elapsed time, while searching for the bomb, the 
accident occurs. Now you have to defuse the bomb 
to buy time because if it explodes after the accident, 
the compartments flood faster. 

Theme four can take place in a more complicated 
setting, for example: in a ski resort in Switzerland. 
Or make it world wide, with international airlines as 
the link. Swissair and you end up in the Alps, Air 
Australia and you get clues from the outback, 
outside Melbourne. Air New Guinea, and the jungle 
holds the next clue, (get the picture?). 

On theme five, fantasy plots are as changeable as 
the wind. This one can have Balrogs or other 
Tolkienian nasties as antagonists, and the variety of 
deadfalls are limited only by the author's 
imagination. Turn a twelve year old Dungeons and 
Dragons player loose with this theme and you will 
have twenty pages of traps in an hour. 

Theme six can go anywhere and do virtually 
anything. The Bermuda Triangle offers transitions 
to every alternate reality you could concieve. The 
rescue can be by aliens from another galaxy, a 
Russian submarine diving team or even a 
team from a secret oceanic research base belonging 
to someone who wishes to take over the world. 

The suspense level of the movie Alien should be 
your clue to how to plot a space opera with a 
monster twist in theme seven. And how would you 
fight a gaseous monster from an anti-matter based 
society? 

With a little twist in the plot of theme eight, you 
become the only time traveler to have visited the 
future described in this theme, and lived to return to 
earth. You have been able to glean from the 
computer records what started the war of oblivion. 
It turned out to be a defective launch control device 
in a Russian silo. Can you sideslip time and space 
and repair the launch control without wrecking all 



BASIC Adventures 13 



the future? Or is time unalterable? 

Theme nine can be altered to almost any 
planetary configuration. The lost civilization theme 
has variations ranging from our own Inca and 
Aztecs to the lost dynasties of Mars occupied by the 
ancestors of the ancient Chinese. 

Deathtrap specific plots are very popular, as in 
theme ten. A recent popular short story deals with a 
gambler on a deadly pinball machine. He always 



wins, and so he increased the odds each time he 
played. Man against the computer society as 
portrayed in the movie Logan's Run is a good theme 
alternative. It pits society as the antagonist, against 
the bright and resourceful player. 

These ten themes are merely samples of the 
endless possibilities awaiting the adventure writer. 
New plots unfold in the news every day. They are as 
close as a movie screen, a book cover, or a 
newspaper. 




14 BASIC Adventures 



Chapter Six 

Where to Sell Adventures 



You have put a lot of blood, sweat and tears into 
the adventure you have written. What do you do 
next? If it's a commercial release you are looking 
for, you have a lot of doors that will be open to you. 

One of the ways to explore the earning power of a 
BASIC adventure is through the sale of paper rights 
to any of a host of eager magazines. 
Here are some which you may want to contact: 
Softside 
6 South Street 
Milford, NH 03055 

80-U.S. Journal 
3838 South Warner Street 
Tacoma, WA 98409 

80-Microcomputing 
Peterborough, NH 03458 

Creative Computing 

PO Box 789-M 
Morristown, NJ 07960 

Byte Magazine 
70 Main Street 
Peterborough, NH 03458 

CLOAD Magazine 

PO Box 1267 
Goleta, CA 93116 
Personal Computing Magazine 
50 Essex Street 
Rochelle Park, NJ 07662 

The magazines are just one possibility. There are 
many publishers who constantly look for new and 
better products for their line. Here are some of 
them: 



Advanced Operating Systems 
450 St. John Road 
Michigan City, IN 46360 

Adventure International 
PO Box 3435 
Longwood, FL 32750 
Hayden Books 
50 Essex Street 
Rochelle Park, NJ 07662 

Instant Software 
Peterborough, NH 03458 

Acorn Software Products 
634 North Carolina Ave. S.E. 
Washington, DC 20003 

The Programmers Guild 

PO Box 66 
Peterborough, NH 03458 

Another method of turning your program into 
cash is to market it yourself. This may sound easy 
enough, but you had better have some 
fundamentals together before you start. 

Ask yourself the following questions: Do I have a 
minimum of one hundred tape (or diskette) 
versions of the product on hand before the 
advertising is printed? Is the documentation 
presentable, attractive and substantial? Have you 
set aside enough money to advertise a minimum of 
three months? Are you prepared to service retailers 
who may be interested in your product? If so, do 
you have a discount structure set up to provide 
profit for them as well as yourself? 

Tough questions? Sure, but the marketplace is a 
tough place and survival depends on preparedness. 



BASIC Adventures 15 



Ultimately, if you remember these basic steps you 
will be successful as an independent adventure 
vendor. 

Eight steps to remember 

1. Thoroughly debug and play test your product 
before you ever sell the first one. Sell just one bad 
one and you will regret it a thousand times. 

2. Visit several computer retailers and see how 
your competition has his software packaged. Then 
do yours better. 

3. Price your software competitively on the retail 
level and don't be afraid to make a profit wholesale. 
Give too high a discount for too small a quantity to 
get yourself established and it will return to haunt 
you time and time again. 

4. Be customer oriented. Don't be afraid to be 
"gung ho" for your individual customer and he will 
support you forever. 

5. Be aggressive. No one can appreciate your 
product as much as you can. Therefore, sell it to the 
widest range of consumers possible in the shortest 
length of time. 



6 Make the choice early between "open" 
programming and "protected media" 
programming. If you support the former, be 
prepared for pirating. If you support the latter, you 
may expect some frustration on the part of the 
honest consumer at not being able to back up his 
purchase. 

7. Fill orders promptly - they are the lifeline to 
success. 

8. Give no credit on initial dealer orders. Your 
cashflow depends on fast turnaround in the first six 
months. You can't afford to do anything but "Cash 
on Delivery" orders. Above all, be honest - your 
business depends on it. 

Marketing a program yourself is very hard work. 
However, if your advertising copy is snappy and 
your program is well written, you will be able to 
realize much more than just the 10 to 20% of 
wholesale which most publishers offer. 

Last but not least, if you are a generous sort, you 
can put your program on one of over three hundred 
bulletin boards for downloading. You won't earn 
much money, but you will have a lot of friends. 




16 BASIC Adventures 



Chapter Seven 

The Adventure Hit Parade 



No discussion of Adventure would be complete 
without a review of the commerical offerings 
currently in the marketplace (which includes many 
programs offered in line listing form in this book). 

The Scott Adams series is perhaps the most 
widely distributed and most popular. The following 
descriptions are based on publicity blurbs and some 
personal observations - 

Adventureland is a light hearted little trip into 
the countryside. This first effort was written in 
BASIC, then changed to machine language. It is a 
good beginning point for the novice, since it's not 
too heady or complicated. There is a BOG and 
a LAKE and numerous other natural features to 
keep things lively. There is also a magic word 
oriented scenario. 

Pirate's Cove is rated as a classic. Its smooth, 
story telling style quickly set the standard for all 
adventures to follow. There are four basic 
locations: 1. Flat in London, 2. On an Island, 3. On 
Treasure Island and 4. In Never-Never-Land. The 
wild and wacky characters that populate this game 
only enhance it. A Pirate, a Mongoose, a Parrot and 
assorted other beasties combine with such 
sublocations as a Grass Hut, etc., to give this 
adventure a real rib-tickling effect. 

Mystery Fun House is an excursion into the >ifcl! 



is an excursion 
madcap world of carnival funhouse with a 
gatekeeper to get past and multiple corridors to 
explore. You must find a variety of objects within 
and get out within the time limit. This one is a real 
brain teaser. 

Mission Impossible pits you against unknown 
enemies in a race to stop a nuclear reactor from 



being destroyed. To complicate matters, there is a 
bomb planted in your head. This one is pretty tough 
to solve, and is an absolute must for those whose 
adventure skills have become well honed. 

Strange Odyssey is one of the best of this series. 
You are alone on a strange planetoid with only a 
broken spaceship and your wits. There is a rock 
with alien runes on it. If you solve the entrance, a 
stargate of brave new worlds with treasure awaits 
you. Manipulation of objects within alien 
environments plays an , important role in the 
solution of this puzzle. 

The Count will leave your blood cold as you 
attempt to rid the world of Count Dracula once and 
for all. You must race against time to beat the 
sunset and find the Count in his humanoid form and 
overcome his powers to drive the stake home. 
There is an angry crowd preventing you from 
shirking your duty. The interior puzzle will keep you 
occupied for hours just deciphering the hallways. 

Voodoo Castle is a weird one. It seems that Count 
Christo has been cursed. You are the only one who 
can save him. Starting off in a chapel you must 
explore the stoney hallways and darkened 
dungeons of Voodoo Castle. There is a JU JU man 
and a Kachina Doll (a likeness of the Count), a book 
for removing curses and much, much more. For 
entertainment value, this one rates very high. 

\ Pyramid of Doom. Somewhere in Egypt there is 

^ an unexplored pyramid. You have the key and can 
begin the search for treasure under the watchful 
eyes of an ever present Nomad. This one is so good 

^ that two weeks into it I still haven't solved even a 

\J portion of it.... yet. 



V 



BASIC Adventures 17 



Ghost Town. This western theme scenerio has all 
the mystique of a John Wayne epic. The puzzle is 
one of the most rewarding and entertaining of 
Scott's. The maze is an authentic ghost town, 
complete with saloon, hotel, jail, boot hill and an 
outrageous piano-playing ghost. Great fun! 
Savage Island is Scott's latest and I haven't seen it 
yet, but have heard it is good. It is a two-parter, a 
departure from the norm. 

The Greg Hassett adventure series has been 
building a reputation as entertaining and suitable for 
beginners. The following observations are taken 
from brief encounters and documentation blurbs - 
Journey to the Center of the Earth is a perky 
little trip into the bowels of Terra Firma. The 
earthdigger gets a busted Gonkulator and you have 
to find a new one (or something to replace it) 
somewhere in the maze of tunnels in which you find 
yourself. Giant bugs and treasure make this entry 
level game interesting. 

House of the Seven Gables pits you against a 
wicked witch in a haunted house. More 
complicated than its predecessor, this program will 
be deadly to those who take its puzzle lightly. 
Unique objets de value and personal combat gives 
a player his money's worth. 
Atlantis. If undersea is where you want to be, this 
one is for you. Personal combat is taken one step 
further with the guardians of treasure being fierce 
sea creatures. It's all done under water, and it's a lot 
of fun. Whirlpools, Octopi and other denizens of the 
deep await you here. 

' Sorcerer's Castle. Haven't you always wanted to 
challenge the evil sorcerer on his own turf? Well, if 

I you can find your way out of the woods, you will be 
just in time to fight the Black Knight, and mayhaps 
even confront the evil sorcerer personally. 
Treasure abounds here, with ample puzzlement to 
appease even the cultist. 

Enchanted Island. Magic and mystery join hands 
to present an adventure of worth. The highly 
different flavor of this program would be spoiled by 
presentation of any details. It is the author's most 
unique and challenging offering in BASIC. 
Enchanted Island Plus. Like Scott Adams, Greg 
Hassett also quests after the increased speed 
offered by machine language. This program has it all 
- speed, blinking cursor and an increased number 
of locations. Not yet fully released, this adventure is 
a must buy when it becomes available. 
Mystery Mansion. The mansion is haunted and 
you have been summoned in a dream to come and 
solve its mystery. Good pace and colorful 



descriptions are selling points for Mansion. It is fast 
and well written and should especially appeal to the 
younger adventure fans. 

World's Edge. The earth's pollution count has 
finally become critical. You can save the planet 
om extetion with 2.2 kg of APC-80 located on a 
small distant Planetoid. But the element ,s 
considered holy by the planetoid s inhabitants so a 
fight is imminent. By far the most imaginative plot 
so far from Greg, who seems to love to add combat 
to his adventures. 

Curse of the Saskwatch is set in the Alaskan 
wilderness where there are dangers galore and 
puzzles aplenty. Good fare from Adventure World. 
Devil's Palace. Something evil lurks in the dark 
forest and you must use all your wits to solve the 
mystery surrounding the instrusion of Chaos into 
the world of your adventure. 
The Microsoft Adventure is a TRS -80 disk 
version of the original Collosal Cave mainframe 
adventure. It takes a long time to solve, but is 
definitely worth it. Dwarves, mazes and weird 
puzzles make this one a must for anyone with disk 
drives. 

The Programmers Guild gives first time authors a 
forum to be published. Li, Boner, Forsythe and 
McCracken are just a few names launched by this 
approach. The evaluations which follow are from 
personal knowledge - 

Lost Dutchman's Gold is an on line western 
adventure. Set in the Superstition mountains of 
Arizona, you accompany the ghost of Backpack 
Sam, a grizzled old former (in life) prospector, who 
knows the secret of the Lost Dutchman mine. 
There are indians, a stubborn mule, a ghost town 
and the Superstitions - dark and mysterious, to 
keep you spellbound throughout the simulation. Li, 
who hails from the very region of Arizona in the 
game, gives a very realistic, even authentic, picture 
of this lively legend that even now is actually sought 
by real 1980's treasure hunters. 

Spider Mountain Adventure. Classic 
Dungeons and Dragons, this adventure employs 
Shelob, a giant spider, as guardian of the many 
treasures of Spider Mountain. Graylockland, an 
arid, fantasy counterpart to Arizona, shares many 
similarities. Don't let them fool you though. Spider 
Mountain Adventure is an entity unto its own. 
Armed with only a crossbow, you face Ores and 
Spiders in the maze of tunnels under the mountain. 
Death Dreadnaught. Rated R by its own publisher 
due to extreme descriptions of violence, this grim 
space saga pits man against the unseen horror 



18 BASIC Adventures 



which has devastated an entire alien battlecruiser. 
As the last living human on board, the adventurer is 
required merely to escape. No mean trick with a 
killer on your trail and an unsolved maze before 
you. This one is not for the squeamish or faint of 
heart. 

Thunder Road. Moonshine and Revenoors and 
'57 Chevys await the player in this takeoff of the TV 
series "The Dukes of Hazzard". Sheriff Bubba 
Clemmons is every bit as dangerous as the 
Revenoors, as the adventurer tries to thread his 
way along the treacherous highways and backroads 
in an attempt to deliver his load of white lightning to 
the folks in Knawbone. 



Temple of the Sun. Shaman magic deep in the 
unexplored passages of an ancient temple in 
Central America. No treasure can be as important 
as finding the secret, hidden away for centuries. 

Deadly Dungeon. Don Boner's first attempt at 
Dungeons and Dragons style adventure. Based on 
a temple excursion in the mythical kingdom of 
Graylockland, this adventure will appeal to 
beginners and advanced players alike. 

These adventures are not the only ones on the 
market, however, they are the most visible. For 
additional information on adventure products, 
contact the vendors you see advertising in the 
popular magazines. 




BASIC Adventures 19 



Part Two 

The Adventure Generator 
by David Huntress 



About the author 



David Huntress is a freelance programmer from 
Boston. The adventure generator is his 
contribution to a genre he cannot readily write for, 
due to a serious injury received during a Vietnam 
tour of duty with the Air Force. His computer 
experience traces back to the early days of personal 
computing, where he taught himself BASIC and 
later, Forth. 

The adventure generator is a previously 
unreleased program. It is an exclusive feature in this 
book. To this date, I know of no one else who has 
accomplished the amazing task of creating a 
program that will write an adventure program. 

The adventure generator assumes that you have 
already traced out your logic flow and mapped out 
the game. It asks you questions, and depending on 



your answers, will take your raw ideas and turn 
them into functioning games while you wait. 

The program is a "working program", which is to 
say that many of the bells, whistles and polish which 
accompany a commercial offering are missing. It 
takes for granted that you know what is going on 
(whether you do or not). For this reason, the would- 
be user is advised to study the remark lines of the 
program as it is typed in, and that the intended 
adventure be entered into the generator only in one 
or two room increments initially, so that the "feel" of 
the program may be acquired. 

Lastly, although the finished adventure will run, 
there may be bugs in it, or it may be inefficient in its 
coding. The editors of this book have decided that 
the unique quality and novelty of this program 
outweigh any possible handicaps. 



20 BASIC Adventures 



Chapter One 

Adventure Generator 
Documentation & Comments 

Requires disk BASIC and one drive. 



Before beginning to use the generator, make a 
map of how your adventure is going to be laid out. 
Each location should have a number which will be 
entered into the generator in response to the 
"Room Description" request. When mapping the 
adventure, remember to tag everything as to where 
it should go and what it should do. Leave nothing to 
chance. Once it is in the program, it will have to be 
manually edited. 

Room Input Cycle 

The generator will ask: ROOM NUMBER 1. It is 
asking you to assign to it the description of room 
number one. When you input your response, be 
sure that you type exactly what you want the screen 
to say in the finished product. If you respond- "A 
RED ROOM", the display in the final program will 
read: "YOU ARE: A RED ROOM". 

Remember your prepositions! IN a red room! ON 
a tall ship. Format your display professionally. 

The Room Input cycle will continue until all of 
your rooms (locations) are entered. When you are 
done entering locations simply type a period and 
ENTER, and the next cycle will begin. 

Object Input Cycle 

A^ good adventure should have objects to 
manipulate. The objects input cycle provides the 
objects you laid out in the planning stages. The 
generator will ask: OBJECT 1: to which you will 
reply "(object, such as shovel or chest)". The 
generator will continue to ask for objects until your 
supply of things to place in the program is 
exhausted. Terminate this cycle with .ENTER. 

Remember that your objects will be appearing 



behind the words, "YOU SEE :" in the program. So, 
configure the descriptions accordingly. Also 
remember the program will zero in on the first three 
letters of an object phrase, so watch things like "A 
GOLD BALL", which will cause the program to 
read: "A(space)G" as the object key word. If you 
want to be colorful in your descriptions, remember 
that your key word should appear first. 

Verb Input Cycle 

All of the verb or action words that your 
adventure will recognize should be placed here. 
The generator will ask VERB 1: to which you will 
respond with the verb(s) you wish to place there. 
The verb input will continue until you have given the 
generator all the verbs you wish to use in the 
program. 

[CAUTION] any word used here will be 
considered an action word and will be used in 
conjunction with objects. Therefore, the verb GET, 
when assigned to GOLDEN BALL will do just that. 
Make sure your verbs make sense. 

Object Placement Cycle 

The generator will list all rooms (locations) by 
their number and will ask: WHAT ROOM DOES 
THE (object such as Gold Ball) GO IN. You should 
then respond with the room number of the desired 
location of the object. This cycle will continue until 
the entire supply of objects has been used. 
Placement of a zero behind object placement will 
put it in a place where it can be accessed by 
conditionals but the adventurer cannot GO there! 
Room Zero is sort of an object storage closet. 



BASIC Adventures 21 



Room Direction Cycle 

The generator will list all rooms (locations). It will 
then begin the directional cycle by asking: "WHERE 
DOES THE (room number 1 description) LEAD 
TO IN THE NORTH". To which you respond with 
the room number which connects with this room in 
that direction MAPPING IS IMPORTANT! 
Make sure that everything is well planned or your 
program will fall apart directionally. If Room One 
exits to Room Two to the North, then Room Two 
should exit to Room One to the South, (except in 
the case of one-way doors and the like). You plan 
your own location map, but it must be logical. 

The generator will go through the room in the 
direction cycle, establishing North, South, East and 
West, as well as Up and Down. 

If you have no outlet for a certain direction, enter 
zero for that location and the direction will be keyed 
to invisibility. It will do that with every room until the 
entire internal map has been drawn. When this 
cycle is complete, you will have the beginnings of a 
working adventure stored in the file the generator 
has been writing all this time. 

One Word Sentence Input Cycle 
One word sentence input is a verb independent 
of the object. The one word verb must be listed in 
the verb section and can be input in reply to the 
generator's question: ONE WORD SENTENCES. 
One word sentences are location and object 
specific and can be used for uncovering or revealing 
things that are stored in room zero for just that 
reason. 

Conditional Input Cycle 

The generator will write your conditionals. It will 
go back to the verb-object combinations and say: 
"(Object, such as Door)" and the object number, 
such as (1). Then it will say: "THE DOOR IS (verb, 
such as OPEN)". Then: "THIS IS WHAT YOU 



HAVE SO FAR... (what appears will be the 
beginnings of a BASIC line. 
(Line Number) IF (OBJECT) = 1 
187IF0= , . 

The generator will give you choices now. 

"Do you want to add on" 
"A for 'AND'" 
"O for OR" 

Choosing "OR" or "AND" brings up a sub-menu: 

"1 if object in room" 
"2 if object in room or in inventory 
"3 if flag is set" 

"4 for random factor"^ 

"5 object not in room" 

"6 if room = N (room number)" 
Selection causes the generator to add to the BASIC 
line it is building. Then the generator gives you a 
chance to add more conditionals by asking: "DO 
YOU WANT TO ADD MORE CONDITIONS 
BEFORE THE THEN'". "YES" will take you back 
to the menu listed above. "NO" will print the line as 
it exists so far, adding "THEN" and bringing up a 
new menu: 

"0 anything not on list" 

"1 object disappears" 

"2 object to inventory" 

"3 leave object in room" 

"4 set flag" 

"5 reset flag" 

"6 new object to room" 

"7 print" 

"8 to open or close a passage" 
The generator will then ask, "MORE ON THE 
SAME VERB Y/N" 

A negative answer will save the rest of the program 
to disk and come up with READY. A "Y" will 
recycle you into more detail on the verb upon which 
you are working. 




22 BASIC Adventures 



Chapter Two 

Adventure Generator 
Sample run 

The program in this chapter was produced using the generator in 
chapter three. 



The adventure generator is an experimental 
program designed for the programmer who already 
knows his way around the computer. The sample 
shown here puts together a little one room 
adventure, with the goal of escape. 

The sample program shows how the generator 
constructs the semi-finished adventure. Naturally, 
there is room for change or modification. 

ROOM$ is the designated location where the 
object (or objects) are to be found or the actions to 
take place. OBJ$ is the "YOU SEE" or the object, 
which responds to VERB$ (such as GET or OPEN). 

Figures 1 and 2 are simplified as much as 
possible. ROOM$ = "in a dank dark miserable 
dungeon.". Typing the VERB($) "GET", and linking 
that command to the OBJECT($) "KEY", moved 
the key to inventory, and caused it to disappear 
from the screen. With the conditional set of the key 
being in inventory, we typed "OPEN DOOR", 
which set off a random generator, giving us a 50% 
chance of freedom. We hit the percentage, and so 
the program typed "YOU MADE IT TO 
FREEDOM". This was what we told the program to 
do when we were running the generator to set up 
the program in the first place. 

The generator program should provide you with 
hours of entertainment or frustration (or both), as 
you learn to master it. Once learned, it will give you 
one adventure after another. 
I AM 

IN A DANK DARK MISERABLE DUNGEON 
CELL 



I CAN SEE: 

KEY, DOOR WHICH SEEMS TO BE 
LOCKED, 

YOU CAN GO: NORTH SOUTH EAST 
WEST UP DOWN 



WHAT SHOULD I DO?- 
I AM 

IN A DANK DARK MISERABLE DUNGEON 
CELL 

I CAN SEE: 

DOOR WHICH SEEMS TO BE LOCKED, 
YOU CAN GO: NORTH SOUTH EAST 
WEST UP DOWN 



Figure 1 

WHAT SHOULD I DO? GET KEY 
WHAT SHOULD I DO? - 
I AM 

IN A DANK DARK MISERABLE DUNGEON 
CELL 

I CAN SEE: 

DOOR WHICH SEEMS TO BE LOCKED, 
YOU CAN GO: NORTH SOUTH EAST 
WEST UP DOWN 



WHAT SHOULD I DO? GET KEY 
WHAT SHOULD I DO? OPEN DOOR 
YOU MADE IT TO FREEDOM 
WHAT SHOULD I DO?— 



Figure 2 



BASIC Adventures 23 



1 CLEAR 1000 

2 CLS ,,,„., nn(IOO) ,D(100 

3 DIM ROOM$ ( 100 ), VERB$ ( 100 ),0B$( 100), OB (10U). 

5 ^i*{i F l M -tfi MISERABLE DUNGEON CI 

6 7 2) - "Ml* WHICH SEEMS TO BE LOCKED" 

8 VERB$( 1) - "GET" 

9 VERB$( 2) = "UNLOCK" 

10 VERB$( 3) = "OPEN" 

11 VERB$( 4) = "GO" 

13 OB( 1) = 1 

14 OB( 2) = 1 

15 DATA NORTH, SOUTH, EAST, WEST 

16 FOR I = 1 TO 4: 

READ D$ (I ) : 
NEXT 

17 D( 1, 1) = 1 

18 D( 1, 2) = 1 

19 D( 1, 3) = 1 

20 D( 1, 4) = 1 

21 U( 1,D - 1 

22 U( 1,2) = 1 

24 NV = 4 

25 NO = 2 

26 CLS 

27 YOU =1 . ' 

28 PRINT @0,S$;S$;S$;S$;S$;S$: 

PRINT @0," " 

29 PRINT §65, "I AM " 

30 PRINT ROOM$(YOU) 

31 PRINT "I CAN SEE : 

32 FOR I = 1 TO NO: 

IF INT(OB(I)) = INT(YOU) 
THEN 

PRINT OB$(D;" , "? aA 

33 IF POS(0) + LEN(OB$(I + 1)) + 3 > 64 

THEN 
PRINT 

34 NEXT 

35 PRINT 

36 PRINT "YOU CAN GO :"; 

37 FOR I = 1 TO 4 

38 IF D(YOU,I) < > 

THEN 
PRINT D$(I);" "; 

39 NEXT 

40 IF U(YOU,l) < > 
THEN 

PRINT "UP"; 

41 IF U(YOU,2) < > 
THEN 

PRINT "DOWN" 
4 2 PRINT 

43 PRINT STRING$(35,61) 

44 PRINT @960,: 



24 BASIC Adventures 



INPUT "WHAT SHOULD I DO" ;I$ 

45 IF LEFT$(I$,3) < > "INV" 

THEN 
49 

46 FOR QQ = 1 TO NO 

47 IF OB(QQ) = - 1 

THEN 
PRINT OB$(QQ) 

48 NEXT 

49 IF LEFT$(I$,5) < > "SCORE" 

THEN 
56 

50 T = 0: 
Y = 

51 FOR I = 1 TO NO 

52 FOR L = 1 TO LEN(OB$(I)) 

53 IF MID$(OB$(I) ,L,1) = "*" 

THEN 
T = T + 1: 

IF OB(I) = YOU OR OB(I) = - 1 
THEN 
Y = Y + 1 

54 NEXT : 
NEXT 

55 PRINT "OUT OF "; T ; "POINTS YOU HAVE " ; Y : 
GOTO 28 

56 FOR I = 1 TO NV 

57 N = LEN ( VERB$ (I) ) 

58 IF LEFT$( LEFT$ (1$ ,N) , 3 ) = LEFT$ ( VERB$ ( I ) , 3 ) 

THEN 
V$ = VERB$(I) 

59 NEXT 

60 PRINT 

62 Yl = 

63 FOR I = 1 TO LEN(I$) 

64 IF MID$(I$,I,1) = CHR$(32) 

THEN 
Yl = I 

65 NEXT 

66 0$ = RIGHT$(I$, LEN(I$) - Yl ) 

67 Y = 

68 FOR I = 1 TO NV 

69 IF LEFT$(VERB$(I),3) = LEFT$(V$,3) 

THEN 
Y = I 

70 NEXT 

71 Yl = 

72 FOR I = 1 TO NO 

73 IF LEFT$(0$,3) = LEFT$ (OB$ ( I ) , 3 ) 

THEN 
Yl = I 

74 NEXT 

75 O = Yl: 
V = Y 

76 V = V + 1 

77 IF 1$ = "FREEDOM" 

THEN 
O = 



78 IF LEN(I$) < > 1 

THEN 
85 

79 C = ■, x / s n 

80 IF 1$ = "N" AND D(YOU,D <■ > 

THEN 
YOU « D(YOU,l): 
GOTO 28 . s n 

81 IF 1$ * "S" AND D(YOU,2) < > " 

THEN 
YOU - D(YOU,2): 
GOTO 28 ^ x n 

82 IF 1$ = "E" AND D(YOU,3) < > U 

THEN 
YOU = D(YOU,3): 

83 IF 1$ - "W" AND D(YOU,4) < > 

THEN 
YOU - D(YOU,4): 
GOTO 28 n 

84 IF 1$ = "U" AND U(YOUrl) < > 

THEN 
YOU = U(YOU,l): 
GOTO 28 

85 IF 1$ = "D" AND U(YOU,2) < > 

THEN 
YOU - U(YOU,2): 

» ™. 1 &. 1 ";. 2 ^. 28 ^. 3 -. 

f 1036, 1086, 

186 IF = 1 

THEN 

OB( 1) = - 1: 
OB( 1) = 0: 

C = C + 1 

187 IF C = 

THEN 

PRINT "I DON'T UNDER STAND" 

188 GOTO 28 

236 IF = 2 AND (OB( D = YOU OR OB( 1) = - 1) 

THEN 

PRINT "THE DOOR OPENS AND A BALROG DEVOURS YOU" 

C = C + 1 

237 IF C = 

THEN 

PRINT "I DON'T UNDER STAND" 

238 GOTO 28 
286 GOTO 336 

336 IF = 2 AND ( RND(IOO) > 50) 
THEN 

PRINT "YOU MADE IT TO FREEDOM": 
C = C + 1 

337 IF C = 
THEN 

PRINT "I DON'T UNDER STAND" 

338 GOTO 28 



26 BASIC Adventures 



Chapter Three 



Adventure generator program 

32K of RAM and disk are required for this program. 



Y/N" 
ELSE 



IF A$ = "N " THE 



10 CLS 

20 CLEAR 4000 : DEFINT A - Z 
30 PRINT "DO YOU HAVE A PRINTER ON LINE 
40 A$ = INKEY$ : IF A$ = "Y" THEN P = 1 

N P = : ELSE : GOTO 40 
50 OPEN "O", 1, " PROGRAM" 

60 DIM LIN$(2000), OB$(100) f VERB$(100), ROOM$(200) f D$(40), V(l 

10), F$(40) 
70 LIN = ljT 

80 LIN$(X) = STR$(LIN) + "S$ - STRING$(255, 32)" 
90 PRINT# 1, LIN$(X) 
100 LIN$(1) = STR$(1) 
110 X = 1 



120 LIN$(2) 
130 X = 2 : 
140 LIN$(3) 



LIN = LIN + 1 
+ "CLEAR 1000" 
PRINT# 1, LIN$(X) : LIN = LIN + 1 
= STR$ (2) + "CLS" 

PRINT# 1, LIN$(X) : LIN = LIN + 1 

= STR$(3) + "DIM ROOM$(100), VERB$(100), OB$(100), O 



B(100), D(100 f 4) r D$(4), F(50) f U(100,2)" 



PRINT# 1, LIN$(X) 
4 : X = 4 



LIN = LIN 
+ "ROOM$C 



150 X = 3 
160 LIN = 
170 I = 1 

180 PRINT "TO END INPUT CYCLE TYPE 
190 PRINT "ROOM NUMBER "; I; *i m 
200 INPUT R$ 

210 IF R$ = • THEN NR = I - 1 
220 ROOM$(I) = R$ 
230 PRINT# 1, LIN$(X) : 
240 LIN$(X) = STR$(LIN) 

R$ + CHR$ (34) 
250 i=i+i s GOTO 190 

260 REM END ROOM INPUT 

270 REM START OBJECT INPUT 

280 CLS 
290 I = 1 

300 CLS : PRINT "OBJECT "; I 
310 INPUT 0$ 
320 OB$(I) = 0$ 

330 IF 0$ - "." THEN NO = I - 1 
340 PRINT# 1, LIN$(X) : 
350 LIN$(X) = STR$(LIN) 

$ + CHR$(34) 
360 i=i+i: GOTO 300 

370 REM END OBJECT INPUT 

380 REM VERB INPUT 



LIN = LIN + 1 



GOTO 260 

+ 1 
+ STR$ (I) + 



)=" + CHR$(34) + 



LIN = LIN 
+ "OB$(" 



GOTO 370 
+ 1 
+ STR$ (I) 



+ ")=" + CHR$(34) + 



BASIC Adventures 27 



LIN = LIN 
I 



390 I - 1 

400 PRINT! 1, LIN$(X) : 
410 CLS : PRINT "VERB " 
420 INPUT V$ • 
430 IF V$ = " • " THEN NV = I - 1 s 
440 VERB$ (I) = V$ ■ 
450 LIN$(X) = STR$(LIN) + " VERB$ ( 
CHR$ (34) 
I + 1 : 



+ 1 

GOTO 470 
• + STR$(D 



«)=•• + CHR$ (34) 



I = 1 



GOTO 400 

END VERB INPUT 

PLACE OBJECTS 

TO NO 



V$ + 
460 I = 
470 REM- 
480 REM 
490 FOR 
500 CLS 

510 FOR 

511 IF POS(0) 

512 NEXT 

520 PRINT „ 
530 PRINT "WHAT ROOM DOES THE 
540 INPUT R 

550 PRINT* 1, LIN$(X) : LIN = LIN 
560 LIN$(X) = STR$(LIN) + "OB(" + 



r^(^^ Q; i)r" $ ^'64 THEN PRINT 



OB$(I) 
+ 1 

STR$ (I) 



GO IN' 



+«)="+ STR$ (R) 



570 NEXT 
580 REM- 

590 PRINT# 1, LIN$(X) : 

600 LIN$(X) = STR$(LIN) 

610 PRINT* 1, LIN$(X) 



END OF OBJECT PLACEMENT 

LIN = LIN +1 „ 
+ "DATA NORTH, SOUTH, EAST, WEST 

LIN = LIN +1 .mpyt" 
620 LIN$(X) = STR$(LIN) + "FOR I=1T04:READ D$(I).NEXT 

630 PRINT* 1, LIN$(X) : LIN = LIN + 1 

64 rem START DIRECTION CHART 

650 DATA NORTH, SOUTH, EAST, WEST 
660 FOR N = 1 TO 4 : READ D$(N) : NEXT 



1 TO NR 



PRINT ROOMS 



TO NR : PRINT L; ROOM$ (L) , 
+ LEN (ROOM$ (L + 1)) + 5 > 64 THEN PRINT 



1 THEN 740 
LPRINT L; ROOM$ (L) 



670 FOR N - 
680 CLS 

690 REM 

700 CLS 
705 QQ = 

710 FOR L - 3 

711 IF POS(0) 

712 NEXT 

720 IF P = OR QQ = 
730 FOR L = 1 TO NR 
735 QQ = 1 
740 PRINT 
750 FOR Q = 1 TO 4 
760 PRINT 

770 PRINT "WHERE DOES THE 

$(Q); 

780 INPUT DD 

790 LIN$(X) = STR$(LIN) + "D(" + STR$(N) + 

+ STR$ (DD) 

800 PRINT* 1, LIN$(X) : LIN = LIN + 1 

810 NEXT 

820 INPUT "WHERE DOES IT LEAD UP"; UP 

830 INPUT "WHERE DOES IT LEAD DOWN"; DOW 

840 LIN$(X) = STR$(LIN) + "U(" + STR$(N) 4 



NEXT 



ROOM$(N); " LEAD TO IN THE 



+ STR$(Q) + 



STR$ (UP) 



28 BASIC Adventures 



850 PRINT* 1, LIN$(X) : LIN = LIN + 1 

860 LIN$(X) = STR$(LIN) + "U(" + STR$(N) + ",2)=" + STR$ (DOW> 

870 PRINT* 1, LIN$(X) : LIN = LIN + 1 

880 NEXT 

890 REM END OF DIRECTION CHART 

900 PRINT#1,LIN$ (X) :LIN=LIN+1 

910 LIN$(X) = STR$(LIN) + "NV=" + STR$ (NV) 

920 REM SET NUMBER OF VERBS 

930 PRINT* 1, LIN$(X) : LIN = LIN + 1 

940 LIN$(X) = STR$(LIN) + "NO=" + STR$ (NO) 

950 REM SET NUMBER OF OBJECTS 



960 PRINT* 1, LIN$(X) : LIN = LIN + 1 

970 LIN$(X) = STR$(LIN) + "CLS" 

980 PRINT* 1, LIN$(X) : LIN = LIN + 1 

990 LIN$(X) = STR$(LIN) + "YOU=l" 



1000 PRINT* 1, LIN$(X) : LIN = LIN + 1 

1010 REM START OUTPUT 

1020 L2 = LIN 

1030 LIN$(X) = STR$(LIN) + "PRINT@ 0,S$;S$;S$;S$;S$;S$:?@0," + CH 

R$(34) + " " + CHR$(34) 
1040 PRINT* 1, LIN$(X) : LIN = LIN + 1 

1050 LIN$(X) = STR$(LIN) + "PRINT@65," + CHR$(34) + "I AM " + C 
HR$ (34) 

1060 PRINT* 1, LIN$(X) : LIN = LIN + 1 

1070 LIN$(X) = STR$(LIN) + "PRINT ROOM$(YOU)" 

1080 PRINT* 1, LIN$(X) : LIN = LIN + 1 

1090 LIN$(X) = STR$(LIN) + "PRINT" + CHR$(34) + "I CAN SEE :" 
1100 PRINT* 1, LIN$(X) : LIN - LIN + 1 

1110 REM OUTPUT WHAT YOU SEE 

1120 LIN$(X) = STR$(LIN) + "FOR I=1T0 NO:IF INT (OB (I ) ) = I NT (YOU) T 

HEN PRIN*T OB$(I);" + CHR$(34) + " , " + CHR$(34) + ";" 
1130 PRINT* 1, LIN$(X) : LIN = LIN + 1 

1140 LIN$(X) = STR$(LIN) + "IF POS ( ) +LEN (OB$ ( 1 + 1 ) ) +3>64THEN PRI 



NT" 

1150 PRINT* 1, LIN$(X) : LIN = LIN + 1 

1160 LIN$(X) = STR$(LIN) + "NEXT" 

1170 PRINT* 1, LIN$(X) : LIN = LIN + 1 

1180 LIN$(X) ■ STR$(LIN) + "PRINT" 

1190 PRINT* 1, LIN$(X) : LIN = LIN + 1 

1200 LIN$(X) = STR$(LIN) + "PRINT" + CHR$(34) + "YOU CAN GO :" + 
CHR$(34) + ";" 



1210 REM CHECK FOR DIRECTION 

1220 PRINT* 1, LIN$(X) : LIN = LIN + 1 

1230 LIN$(X) = STR$(LIN) + "FOR I=1T04" 

1240 PRINT* 1, LIN$(X) : LIN = LIN + 1 

1250 LIN$(X) = STR$(LIN) + "IF D ( YOU , I) O0THEN PRINT D$(I);" + C 



HR$(34) + " " + CHR$(34) + ";" 
1260 PRINT* 1, LIN$(X) : LIN = LIN + 1 
1270 LIN$(X) = STR$(LIN) + "NEXT" 
1280 PRINT* 1, LIN$(X) : LIN = LIN + 1 

1290 LIN$(X) = STR$(LIN) + "IF U ( YOU , 1 ) O0THEN PRINT" + CHR$(34) 

+ "UP" + CHR$(34) + ";" 
1300 PRINT* 1, LIN$(X) : LIN = LIN + 1 

1310 LIN$(X) = STR$(LIN) + "IF U ( YOU , 2) O0THEN PRINT" + CHR$(34) 
+ "DOWN" + CHR$(34) 



BASIC Adventures 29 



1320 PRINT# 1, LIN$(X) : LIN = LIN + 1 
1330 LIN$(X) = STR$(LIN) + "PRINT 
1340 PRINT# 1, LIN$(X) : LIN = LIN + 1 
1350 LIN$(X) = STR$(LIN) + "PRINT STRING$ ( 35 , 61 ) 
1360 PRINT# 1, LIN$(X) : LIN = LIN + 1 
1370 LIN$(X) = STR$(LIN) + "PRINT@960, : INPUT 

SHOULD I DO" + CHR$(34) + ";I$" 
1380 PRINT# 1, LIN$(X) : LIN ■ LIN + 1 
1390 LIN$(X) = STR$(LIN) + "IF LEFT$(I$,3)<> 

+ CHR$(34) + "THEN" + 
1400 PRINT# 1, LIN$(X) 



+ CHR$(34) + "WHAT 



+ CHR$(34) + "INV" 



1410 LIN$ (X) = STR$ (LIN 

1420 PRINT# 1, LIN$(X) 

1430 LIN$ (X) = STR$ (LIN 

1440 PRINT# 1, LIN$(X) 

1450 LIN$(X) = STR$(LIN 

1460 PRINT# 1, LIN$(X) 



STR$ (LIN + 4) 
LIN - LIN + 1 
+ "FOR QQ=1T0 NO" 
LIN = LIN + 1 

+ "IF 0B(QQ)=-1THEN PRINT OB$ (QQ) " 
LIN = LIN + 1 
+ "NEXT" 
LIN = LIN + 1 



now rrcj.iNiff x, l.±lns>^a; : uiin = l.j.in t j. 

1470 LIN$(X) = STR$(LIN) + "IF LEFT$ (I$,5) <>" + CHR$(34) + "SCOR 

t? n x. r*ij r> C? t 1 A \ _i_ Rtupmh j_ chid6 / t tm j. 1 \ 



E" + CHR$ (34) + "THEN 

1480 PRINT# l f LIN$(X) 

1490 LIN$(X) = STR$(LIN 

1500 PRINT# 1, LIN$(X) 

1510 LIN$ (X) = STR$ (LIN 

1520 PRINT# 1, LIN$(X) 

1530 LIN$(X) = STR$(LIN 

1540 PRINT# 1, LIN$(X) 



+ STR$ (LIN + 7) 
LIN - LIN + 1 
+ "T=0 : Y=0" 
LIN = LIN + 1 
+ "FOR I=1T0 NO" 
LIN = LIN + 1 
+ "FOR L=1T0 LEN (OB$ (I) ) 



LIN = LIN + 1 

1550 LIN$(X) = STR$(LIN) + "IF MID$ (OB$ (I) ,L, 1) =" + CHR$(34) + " 

*" + CHR$(34) + "THEN T=T+1:IF OB(I)=YOU OR 0B(I)=-1THEN Y=Y + 1 
n 



1560 PRINT# 1, LIN$(X) : 
1570 LIN$(X) - STR$(LIN) 
1580 PRINT# 1, LIN$(X) : 
1590 LIN$(X) ■ STR$(LIN) 

34) + ";T;" + CHR$(34) 

TO" + STR$ (L2) 
1600 PRINT# 1, LIN$(X) : 
1610 LIN$(X) = STR$(LIN) 
1620 PRINT# 1, LIN$(X) : 
1630 LIN$(X) * STR$(LIN) 
1640 PRINT# 1, LIN$(X) : 
1650 LIN$(X) = STR$(LIN) 

I) , 3 ) THEN V$-VERB$ ( I ) " 
1660 PRINT# 1, LIN$(X) 
1670 LIN$(X) = STR$(LIN 
1680 PRINT# 1, LIN$(X) 
1690 LIN$(X) = STR$(LIN 
1700 PRINT* I, LIN$(X) 
1710 PRINT* I, LIN$(X) 
1720 LIN$(X) = STR$(LIN 
1730 PRINT* 1, LIN$(X) 
1740 LIN$(X) = STR$(LIN 
1750 PRINT* 1, LIN$(X) 
1760 LIN$(X) = STR$(LIN 
1770 PRINT* 1, LIN$(X) 
1780 LIN$(X) - STR$(LIN) 



LIN = LIN + 1 
+ "NEXT:NEXT" 
LIN - LIN + 1 

+ "PRINT" + CHR$(34) + "OUT OF' 
+ "POINTS YOU HAVE" + CHR$(34) 



+ CHR$ ( 
+ ";Y:GO 



LIN = LIN + 1 
+ "FOR I=1T0 NV" 
LIN = LIN + 1 
+ "N=LEN(VERB$ (I) ) " 
LIN = LIN + 1 

+ "IF LEFT$(LEFT$(I$,N),3)=LEFT$(VERB$( 



LIN = LIN 
+ "NEXT" 
LIN = LIN 
+ "PRINT" 
LIN - LIN 
LIN = LIN 
+ "Y1=0" 
LIN - LIN 



+ 1 



+ 1 



+ 1 



+ "FOR I=1T0 LEN(I$) " 
LIN = LIN + 1 

?™ IP ?J2 $(I ?' I ' 1 )-CHR$(32)THEN Yl-I 
LIN = LIN + 1 

+ "NEXT" 



30 BASIC Adventures 



1 790 


PRINT* 


1 . 


L I N $ ( X ) • 


r tn = r tm x l 




1800 

X \J V V 


LIN$ (X) 




STR$ (LIN) 


• — 1\ 1 vjtl 1 p \ 1 9 r Lit JN ( 1 9 ) 


V 1 \ II 

— X 1 J 


1810 


PRINT* 


lr 


LIN$(X) : 


LIN = LIN + 1 


1820 


LIN$ (X) 




STR$ (LIN) 


x «y=0" 




1 ft ^0 

X O J I6i 


PRINT* 
r r\ x xn x if 


1 

x r 


r TN& l X \ 


r tm r t m x. 1 




1840 


LIN$ (X) 




STR$ (LIN} 


+ n PDR TrlTn Ml/" 
« C \Jt\ X — i 1 U IN V 




1 8S0 


PRINT* 


1 . 
A r 


LIN$ ( X ) • 


r tm — r tm x. 1 
xjXxn — Li x IN t X 




1860 

X SJ sJ %J 

Y- 


LIN$ (X ) 

X-J X J- ' *y \ • » / 

= 1" 




STR$ (LIN) 


X "TP r P PT<^ / VPDR<s / T \ 1\ 


-LhrT$ (V$ f 3)THEN 


X 

1870 

X SJ f mf 


PRINT* 


1 . 


LINS ( X ) • 

J-J X xN V \ /\ J * 


r tn = r tm x l 




1880 

X SJ SJ V 


LIN$ (X j 




STRS (I TN) 


' IN Ei A 1 




1890 


PRINT* 


lr 


LIN$(X) : 


LIN = LIN + 1 




1900 


LIN$ (X) 




STR$ (LIN) 


x "Y1=0" 




1910 


PRINT* 


1 . 


LIN$ (X^ • 


LIN = LIN + 1 




1920 


LIN$ (X) 




u 1 I\y \ Xj X IN J 


+ "FOR I=1T0 NO" 




1930 


PRINT* 


1 . 


LIN$(X) • 


LIN = LIN + 1 




1940 LIN$(X) 
1 =T " 




STR$ (LIN^ 


x « IF LEFT$ (0$, 3) =LEFT$ (0B$ (I) f 3) THEN Y 


1950 


PRINT* 


1 . 
x r 


LINS ( X ) • 

Li 1 11 y ^ A ^ • 


LIN = LIN + 1 




1960 


LIN$ (X) 




STR$ (LIN) 

SJ X i\ ^ 1j X Li y 


+ "NEXT 




1970 


PRINT* 


1 _ 
x r 


LINS (X ) • 

u x ii y ^ a / • 


LIN = LIN + 1 




1980 


LIN$ (X) 




Ditty ^ Li ± L\ ) 


+ "0=Y1:V=Y" 




1990 


PRINT* 


1 , 
■*■ r 


LIN$ (X ) • 

w x ii y ^ A ^ • 


LIN = LIN + 1 




2000 


LIN$ (X) 




STR$ (LIN) 


x »v=V+l" 




2010 


PRINT* 


lr 


LIN$(X) : 


LIN = LIN + 1 




2011 


INPUT " 


HOV\ 


f MANY ONE 


WORD SENTENCES "; NT 




2012 


IF NT - 





THEN 2020 






2013 


FOR QQ 


= 1 


TO NT 







2014 INPUT "WORD"; W$ 

2015 LIN$(X) = STR$(LIN) + "IF I$=" + CHR$(34) + W$ + CHR$(34) + 
"THEN 0=0" 

2016 PRINT* 1, LIN$(X) : LIN = LIN + 1 

2017 NEXT 

2020 LIN$(X) = STR$(LIN) + "IF LEN ( I $ ) <> 1THEN" + STR$ (LIN + 7) 

2030 PRINT* 1, LIN$(X) : LIN = LIN + 1 

2031 LIN$(X) = STR$(LIN) + "C=0" 

2032 PRINT* 1, LIN$(X) : LIN = LIN + 1 

2040 LIN$(X) = STR$(LIN) + "IF I$=" + CHR$(34) + "N" + CHR$(34) 

+ "AND D (YOU , 1 ) O0THEN YOU=D (YOU , 1 ): GOTO" + STR$(L2) 
2050 PRINT* 1, LIN$(X) : LIN = LIN + 1 

2060 LIN$(X) = STR$(LIN) + "IF I$=" + CHR$(34) + "S" + CHR$(34) 

+ "AND D (YOU , 2) O0THEN YOU=D (YOU , 2) :GOTO" + STR$(L2) 
2070 PRINT* I-, LIN$(X) : LIN = LIN + 1 

2080 LIN$(X) = STR$(LIN) + "IF I$=" + CHR$(34) + "E" + CHR$(34) 

+ "AND D (YOU , 3 ) O0THEN YOU=D (YOU , 3 ) :GOTO" + STR$ (L2) 
2090 PRINT* 1, LIN$(X) : LIN = LIN + 1 

2100 LIN$(X) = STR$(LIN) + "IF I$=" + CHR$(34) + "W" + CHR$(34) 

+ "AND D (YOU , 4 ) O0THEN YOU=D ( YOU , 4 ) : GOTO" + STR$(L2) 
2110 PRINT* 1, LIN$(X) : LIN = LIN + 1 

2120 LIN$(X) - STR$(LIN) + "IF I$=" + CHR$(34) + "U" + CHR$(34) 

+ "AND U (YOU , 1 ) O0THEN YOU=U (YOU , 1 ): GOTO" + STR$ (L2) 
2130 PRINT* 1, LIN$(X) : LIN = LIN + 1 

2140 LIN$(X) = STR$(LIN) + "IF I$=" + CHR$(34) + "D" + CHR$(34) 

+ "AND U ( YOU , 2) O0THEN YOU=U (YOU , 2) :GOTO" + STR$(L2) 
2150 PRINT* 1, LIN$(X) : LIN = LIN + 1 



BASIC Adventures 31 



19 

= LIN$(X) + STR$(I) 
50 



n n 
I 



+ 1 



PRINT "PASS' 



LIN ■ LIN + 1 



2160 IT = 
2170 I = LIN + 50 

2180 REM START ON GOTO GENERATOR- 

2190 LIN$(X) = STR$(LIN) + "ON V GOTO" 
2200 LL = 1 
2210 QQ = 20 
2220 IT = 

2230 FOR N = LL TO LL + 
2240 LIN$(X) 
2250 I=i+ 
2260 V(IT) =1-50 
2270 IT a it 
2280 NEXT 
2290 S = S + 
2300 PRINT LIN$(X) 
2310 PRINT 
2320 LL = LL + 20 
2330 PRINT! 1, LIN$(X) 
2340 IF LL + 20 > NV THEN 2380 

2350 LIN$(X) = STR$(LIN) + "ON V-" + STR$ (QQ) + "GOTO 1 
2360 QQ = QQ + 20 
2370 IF LL < 100 THEN 2230 

olla d EM END 0F 0N G0T0 GENERATOR 

HVa START CONDITIONAL STATMENTS 

2410 FOR QQ = 1 TO 500 : NEXT : FOR N = 1 TO NV 
2420 LIN = V(N) 
2430 CLS 

2440 FOR LT = 1 TO NO 
2450 PRINT LT; OB$ (LT) ; 
2460 IF POS(0) + LEN (08$ (LT 
2470 NEXT 
2480 PRINT 

2490 PRINT STRING$(63, 191) 
2500 PRINT "THE VERB IS "• 

2510 W M« P i!L nDO Y ° U WANT TO 'gOTO ANOTHER VERB Y/N" • A$ 
2520 ^ S T EN PR ^ .4h E E LS vLb II " $ %»XJ? D A$ <> THEN^^ll 

NV : PRINT QT; VERB$^QT^ - ^E XT ' > ' ^ QT = 1 T 

2530 INPUT "VERB NUMBER TO GOTO cm 

2550 GOTO ^10 STR$(LIN) + " G0T °" + STR $ (V(GV)) 
2560 LIN$(X) = STR$(LIN) + "IF 0=" 
2570 INPUT "OBJECT NUMBER «. NT 

llll nra $W = LIN$(X > + STR$ (NT) ' 

Zjylo CLS 

2600 PRINT "THIS IS WHAT YOU HAVE SO FAR" 

2610 PRINT ; PRINT 

2620 PRINT LIN$(X) 

2630 PRINT "DO VOU WANT TO ADD MORE CONDITIONS BEFORE THE * THEN ' 



+ 1) ) + 2 > 64 THEN PRINT 



VERB$ (N) 



2640 PRINT " y/N" 
2650 A$ = INKEY$ : IF A$ <> » 
2660 IF A$ - "Y" THEN 3250 
2670 LIN$(X) = LIN$(X) + "THEN" 
2680 CLS 



Y" AND A$ <> « N " THEN 2650 



32 BASIC Adventures 



2690 PRINT LIN$(X) 

2700 DATA PRINT nfwxim\' „ 

2710 CLS ° B < NT >^ OB (NT) =-1 f OB (NT) =YOU 

2720 REM An _ ' 

2730 PRINT "0 ANYTH?Mr N M^ AFTER THEN 

2740 PRINT "1 
")=0» 



2750 PRINT "2 
-1" 

2760 PRINT "3 
) + ")=YOU" 
2770 PRINT "4 
2780 PRINT "5 
2790 PRINT 
2800 PRINT 
2810 PRINT "8 
2820 PRINT LIN$ (X) 
2830 INPUT "TO END WITH" 
2840 IF A > 3 THEN 29 10 
2850 FOR QQ = i to NO : 



ANYTHING NOT ON LIST" 

OBJECT DISAPPEARS" J D$U ) =- B(" + ,. « 

U; 06 ( + STR$(NT) + 

OBJECT TO INV" . n$/ox 

• D$(2) = «0B(" + STR$ (NT) + Pv. 

LEAVE OBJECT IN ROOM" : D$(3J _ + fl , 

*\*) 0B(" + STR $ (NT 



"6 
"7 



SET FLAG" 
RESET FLAG" 

°«» »" CUM A PASSAGE" 



2860 PRINT 
2870 IF A 
2880 IF A . 



INPUT "OBJECT ^TO ffi^Sfi"^ 

i 



"OB (" 
"0B(" 



2890 IF A = 



1 THEN D$(l) 

2 THEN D$ (2) 

2900 GOTO 3110 THEN D$(3) = n ° fi ( B 

llll rL A ° 8 THE * 2930 
2920 GOTO 2960 

■ THEN 3100 
<> 7 THEN 3040 

FOR IQ = l TO NR 
WHAT ROOM 



+ 
+ 
+ 



STR$(OT) 
STR$ (OT) 
STR$(OT) 



+ 
+ 
+ 



NEXT 
OT 

")=0" 
")=-l" 
")=YOU" 



2930 IF A 
2940 IF A 
2950 CLS : 
2960 CLS : 
2970 INPUT 
2980 INPUT "Tn 

' T ° ^OSZ ?v^ B S"f A § SAGE ™ PE «00M NUMBER PASSAGE IS TO GO TO 



A$ : GOTO 3020 
PRINT IQ; ROOM$(IQ), 
/ R 



NEXT 



n n 



+ STR$(D) + -)=. + 



PRINT QQ; OB$(QQ), . NEXT 



Hit S%,"^^P- D -:-*..1. 1,2,3,4 
STR$( ) LIN S(X) + « D( - + STR$( R) V 

3010 GOTO 3120 

if 3»' S » " mm * M '" * CMSIM > * « * ~mm 

«■"?»"" 3636 

3070 Print - 1 TO NO : prtmt ^ 

llll 0^6) I ";" «> GO TO ROOM—-; NU 
3100 IP A = Uli + S J R$ W) * ")=YOU» 

3"** £S5gg -™ ER THAN STRING INPUT "' * - 

3120 PR INT " THE VERB ^1 s + ? $ W 
3™™^'^ ™ VcPM"' • "THIS IS W „AT VOU 

3140 A$ = TM(fPv<r C 

3150 if A$ ™ K ^? 2 " A$ <> - y . AND A$ <> - N - „„ 

"M LIN $(X , p^^JWW ♦ ":" 



LIN$(X) 



THEN 3140 
: GOTO 2710 



BASIC Adventures 33 



THEN 3180 
« + CHR$(34) + "I DO 



3160 PRINT# 1, LIN$(X) : LIN = LIN + 1 
3170 CLS : PRINT "MORE ON SAME VERB Y/N" 
3180 A$ = INKEY$ : IF A$ <> "Y" AND A$ <> "N 

3190 IF A$ = "Y" THEN 2430 

3191 LIN$(X) = STR$(LIN) + "IF C=0THEN PRINT 
N'T UNDERSTAND" + CHR$(34) 

3192 PRINT# 1, LIN$(X) : LIN = LIN + 1 
3200 LIN$(X) = STR$(LIN) + "GOTO" + STR$(L2) 
3210 PRINT# 1, LIN$(X) : LIN = LIN + 1 
3220 NEXT 

3230 GOTO 3740 

3240 REM ADD ON 1 S BEFORE THEN 

3250 CLS 

3260 PRINT : PRINT LIN$(X) 

3270 PRINT : PRINT : PRINT "DO YOU WANT TO ADD ON 
A FOR 'AND' 
FOR 'OR'" 

3280 A$ = INKEY$ : IF A$ <> "A" AND A$ <> "0" THEN 3280 



+ "AND" : ELSE : LIN$(X) 



3300 PRINT "1 

3310 PRINT "2 

3320 PRINT "3 

3330 PRINT "4 

3340 PRINT "5 

3350 PRINT "6 



= " (FLAG ( " 



NEXT 



3290 IF A$ = "A" THEN LIN$ (X) = LIN$ (X) 
= LIN$(X) + "OR" 

IF OBJECT IN ROOM" 
IF OBJECT IN ROOM OR IN INV" 
IF FLAG IS SET" : D$(3) 
FOR RANDOM FACTOR" 
OBJECT NOT IN ROOM" 
IF ROOM=N" 
3360 INPUT "TO ADD WHAT"; A 
3370 IF A <> 6 THEN 3410 

3380 FOR QQ = 1 TO NR : PRINT QQ; ROOM$ (QQ) , 

3390 PRINT : INPUT "WHAT ROOM "; RT 

3400 D$(A) = n (YOU=" + STR$ (RT) + ")" : GOTO 3560 
3410 IF A <> 4 THEN 3450 

3420 INPUT "HOW MANY OUT OF 100 ARE TO BE BAD"; Q 
3430 D$(A) = "(RND(100)>" + STR$ (Q) + ")" 
3440 GOTO 3560 

3450 IF A <> 1 AND A <> 2 AND A <> 5 THEN 3550 
3460 FOR QQ = 1 TO NO : PRINT QQ; 0B$ (QQ) , : NEXT 

3470 INPUT "OBJECT NUMBER "; OB 

3480 IF A = 1 THEN 3540 
3490 IF A = 5 THEN 3520 

3500 D$(A) = "(0B(" + STR$(OB) + ")=YOU OR OB ( " + STR$ (OB) + ") = 

-D M 
3510 GOTO 3560 
3520 D$ (A) = " (0B(" 
3530 GOTO 3560 
3540 D$ (A) = " (0B(" 
3550 IF A = 3 THEN 3580 
3560 LIN$(X) = LIN$(X) + D$ (A) 
3570 GOTO 2590 

3580 REM CHECK FLAG 

3590 FOR QQ = 1 TO F2 : PRINT "FLAG"; F2; 

3600 INPUT " WHAT FLAG TO CHECK "; 

3610 D$(3) = D$(3) + STR$(F) + "))" 
3620 GOTO 3560 



+ STR$ (OB) 
+ STR$ (OB) 



") OYOU) " 
")=YOU) " 



FOR"; F$ (QQ) : NEXT 



3630 REM CREATE FLAG 

3640 FOR QQ = 1 TO F2 : PRINT QQ; F$ (QQ) , : NEXT 

3650 PRINT "DO YOU WANT ANY OF THESE FLAGS" 

3660 A$ = INKEY$ : IF A$ <> "Y" OR A$ <> "N" THEN 3660 

3670 IF A$ = "N" THEN 3710 

3680 INPUT "THE FLAG NUMBER "; F 

3690 IF A = 4 THEN D$(4) = "F(" + STR$ (F) + 

3700 IF A = 5 THEN D$(5) = "F(" + STR$ (F) + 

3710 F2 = F2 + 1 

3720 INPUT "WHAT IS THE FLAG FOR "; F$ (F2) 

3730 CLS : GOTO 3640 

3740 CLOSE 

3750 CLS 



")=1" 
")=0) " 



GOTO 3110 
GOTO 3110 




34 BASIC Adventures 



BASIC Adventures 35 



Program Editor's General Notes 

Except where noted, most programs 
which follow have been spaced for clarity 
and will fit a 16K Level II TRS-80 if 
compressed. Further reduction in 
memory requirements may be required 
for certain programs to run on the Model 
III 16K systems. This is most easily 
accomplished by shortening instructions 
or print statements. 

In the listings, lines which normally 
wrap around (extend beyond the first 
line to the second line) are indented two 
characters on the second and following 
lines. 

Lines which are printed flush left in the 
listings without line numbers are created 
by pressing the down-arrow key on the 
Model I and III keyboard at the end of the 
preceding line. 

Conversion to other computers is 
possible. It is suggested, however, that a 
copy of David Lien's BASIC Handbook 
be available for use during the 
conversion process. 



Part Three 

Eighteen BASIC 
Adventures 



(to type in) 




36 BASIC Adventures 



Chapter One 

Atlantean Odyssey 
by Teri Li 



♦ 



About the author 



Teri Li is a fulltime programmer for Instant 
Software, Incorporated, of Peterborough, New 
Hampshire, a division of Wayne Greene, 
Incorporated, which publishes 80-Microcomputing 
magazine. Raised in Tucson, Arizona, Teri is a 
highly accomplished technical writer in the 
microcomputer field. His material has been 
published in every major magazine in the industry. 

His prowess as an adventure writer is evident in 
both Od^/sse},; and Dutchman's Gold. Dutchman 
and Odyssey join Spider Mountain, which was co- 
plotted by this writer. 

Odyssey is the only graphics adventure in this 
book, although the full graphics module is a World 
of Adventure Company exclusive. The text version 
is available in machine code, offered by the 
International Association of Programmers. 

Teri's future plans leave room for additional 
adventures, including a collaboration on an epic. 
His goal is to become a self-sustaining professional 
writer. 



The listings of this program are presented in 
three modules. Modules one and three require a 
minimum of 32K of RAM to run either under tape or 
disk. They have been spaced for clarity. They can 
be combined as indicated in the text but must be 
compressed to fit into a 48K RAM system. 

Module two requires 48K of RAM under disk or 
tape to run, and must not be spaced beyond that 
presented in the listing. 



About the program 



Atlantean Odyssey was originally written as an 
exercise in linear programming, a prelude to 
learning machine language programming. Because 



BASIC Adventures 37 



of this, its structure is rather unusual for a BASIC 
program. No attempt was made to make use of the 
special features of BASIC (i.e., IF THEN ELSE, 
VARPTR, etc.), and associated programming 
techniques that work well in BASIC but are difficult 
for the beginner to implement in machine language. 

This is most obvious in the graphics portions of 
the program, which are composed entirely of POKE 
statements. These POKE statements follow closely 
what actually has to be done to produce graphics in 
machine language, i.e., an address followed by 
value to be loaded into it. As a side effect this is 
practically the only graphics game on the market 
which is readily adaptable to being printed in a 
book. 

The program is organized with the data required 
for the program located first (BASIC is more 
efficient if the data statements are last). This is 
followed by the graphics used in Atlantean Odyssey 
again, for the same reason. The actual 
programming code starts at line 15010 and 
continues to line 20010. Lines 15000 - 15400 are 
used to decide what the display looks like and what 
location related messages will be printed (i.e., which 
doors are open or closed, if the lamp is on or off, 
what you see, etc.). Lines 15420 - 15460 check the 
player's response for immediate legality (one letter, 
one word, or multiple word response). From line 
15640 on, the remark statements are more than 
adequate for an explanation of what is happening. 

Linear programming is also the easiest to 
understand, since everything is organized more or 
less in a straight line with jumps passing over 
anything not needed for the immediate purpose. 

Another side effect is that there are loop errors. 
In most BASICs, if you jump out of the middle of a 
FOR . . . NEXT loop without completing it, you leave 
a byte on the stack which BASIC maintains for 
loops. If you do this too many times, the program 
will bomb. Fortunately, for Atlantean Odyssey, this 
is easily fixed by the use of the ONERROR GOTO 



statement. Radio Shack BASIC allows the use of 
RESUME NEXT which will continue the program. If 
your computer crashes in a FOR . . . NEXT loop with 
the error NF (NEXT without FOR) then you should 
add the error trap routine. 

Atlantean Odyssey is presented in this book as 
three separate modules. The first module is the 
BASIC program itself, without any graphics 
capabilities. It requires approximately 20K RAM in 
which to run, although it actually resides in only 16K 
RAM. Additionally, as you are typing it in, you will 
notice several lines which contain the REM 
command followed by BASIC code. These lines are 
needed for the implementation of graphics into the 
game. If you are going to use the graphics, then the 
following code may be left out of the listing. 

The second program listing is complete with 
graphics and requires 48K RAM. However, once 
you begin to enter the graphics you will see that you 
can cut down on the space needed by using 
compressed graphics PRINT statements (this is 
most easily done by using a simple PEEK-POKE 
program to scan the memory for the physical 
memory spot occupied by the PRINT statement 
and POKE the appropriate graphics code into it). 
An additional 4K to 5K RAM savings can be 
acquired by using a compression program to 
remove unwanted remark statements and combine 
single statement lines into multiple statement lines. 

The third program module is the graphics portion 
only. If you want to try out the graphics coding you 
will need to add three lines to the coding to test the 
graphics before you try the game itself (this way you 
can safely step through all the graphics available 
and correct any errors without having to worry 
about your game being interrupted by graphics 
errors). These lines are: 

1031 DIM DOO(ll,2) 
1033 CLS 

1035 PRINT@896,"LOCATION";:INPUTA 
1060 GOTO1035 



38 BASIC Adventures 



Atlantean Odyssey 



10 CLS : PRINT© 0, "WELCOME TO GRAPHIC- AD VENTURE # 1, WORLD COPY 

RIGHT (C) 1979 
BY TERRY KEPNER 
ALL RIGHTS RESERVED" 

20 PRINT "YOU ARE ABOUT TO TAKE PART IN A FANTASTIC ADVENTURE TH 
ROUGH THE 

MAGIC OF COMPUTER-SIMULATION ROLE PLAYING. YOU WILL BE ABLE TO 
EXPERIENCE AND REACT TO YOUR SURROUNDING ENVIRONMENT WITH THE" 

30 PRINT "AID OF AN ANDROID. IT WILL RESPOND TO YOUR COMMANDS AN 
D RELAY TOYOU ALL THAT IT EXPERIENCES, INCLUDING WHAT IT SEES. 
SINCE IT ISA CHEAP MODEL, ITS EYES (MINI -CAMERAS) ARE NOT VERY 
SHARP, SO YOU"; 

40 PRINT "MAY HAVE TO EXAMINE THINGS IN ORDER TO DETERMINE JUST 
WHAT THEY REALLY ARE. SINCE THE ANDROID HAS A LIMITED VOCABULA 
RY (ABOUT 70"; 

45 PRINT "VERBS AND OVER 100 NOUNS), IT CAN UNDERSTAND ONLY TWO 
WORD SEN- TENCES. IF ONE SENTENCE DOESN'T WORK TRY ANOTHER." 

50 PRINT "SOME VERBS IT KNOWS ARE: GO, GET, DROP, HELP, INVENTOR 
Y, SCORE, AND UNWEAR."; 

60 CLEAR 255 : DEFSTR C, M - Q 

70 IN = 1 : SI = 2 : Al = 50 : F = : W = 175 : T = : Bl = 
: A = 1 

90 DIM COMND(62), OBJET(39, 3), DOO ( 1 1 , 2), N(32, 9) 

110 DATA HIN, NOR, SOU, EAS, WES, UP, DOW, QUI, SAV, SCO, HEL, I 

NV, LIS, CLI, DIG, JUM, SWI , GO , WAL, ENT, EXI , RUN, CRA 
120 DATA EXA, SEA, LOO, REA, GET, TAK , PIC, MOV, GRA, UNL, DRO , 

PUT, PLA, GIV, TRA, SET, LOA, THR, TOS , OPE, CLO 
130 DATA BUR, LIG, PUS, PUL, SHO, BRE, HIT, KIC, ATT, LOC , SAY, 

CAT, CHA, FOL, EAT, SWA, DRI , WEA, UNW 
140 DATA TRIDENT, TRI , , "13 ", KNAPSACK, KNA, 11, "01IT'S AN 

LD CANVAS HIKER'S BAG.", PILE OF DEBRIS, DEB, 28, "12 ", CLOT 

H DRAPES, DRA, 14, "03THEY APPEAR TO BE MADE OF SILK." 
150 DATA PAPER ON COUNTER, PAP, 13, " 04THERE ' S WRITING ON IT.", 

LAMP, LAM, -9, "05IT'S A WATERPROOF LIGHT.", FLASHLIGHT, FLA, 

-2, "06IT'S A METAL FLASHLIGHT." 
160 DATA JETSAM, JET, 5, "00JUST SEAWEEDS, SHELLS, AND FOAM.", D 

ECAYED BOX, BOX, 4, "11AN OLD, OLD WOODEN BOX.", BOOKS, BOO, 1 

7, "07VERY, VERY OLD BOOKS, MAYBE THEY'RE VALUABLE." 
170 DATA CLOTH MATERIAL, MAT, 23, "08IT LOOKS LIKE VELVET.", AIR 
TANKS, TAN, 13 

175 DATA "00STRANGE, ACCORDING TO THE LABELS THEY'RE TWO-25 TURN 
AIR TANKS.", PILLOW, PIL, 15, "00A VERY FADED, MUSTY SMELLING 
PILLOW. " 

180 DATA SCUBA GEAR, SCU, 11, "001 SEE A COMPLETE OUTFIT — WETS 

UIT, TANKS WITH AIR GAUGE.", SPEARGUN, SPE, 11 
185 DATA "09IT'S A TWO SHOT SPEARGUN.", GAUGE, GAU, , "10IT SAYS 

THAT THERE'S ENOUGH AIR FOR ..." 
190 DATA *CRYSTAL PYRAMID*, PYR, 7, "00IT LOOKS LIKE GLASS.", * 

CYLINDER *, CYL, -4, " 00THERE ' S A SLOT CUT IN ONE END." 
200 DATA * MEDALLION *, MED, -6, "00A FLAT HEXAGONAL METAL PIECE 

WITH FOUR STONES IN IT; A RUBY, 
A SAPPHIRE, AND A BLUE DIAMOND, PLACED AROUND A GREEN OPAL.", *G 

OLD DOLPHIN*, DOL, -23, "00I/T LOOKS LIKE SOLID GOLD." 



Atlantean Odyssey 



BASIC Adventures 39 



210 DATA * COIN *, COI, -28, "00A ^NUINE ATLANT^^ 

ACK PEARLS *, PEA, -14 "9^«00THERE ' S A ROUND HOLE IN IT.", 
220 DATA METAL PLATE, MET, 26, 00THERE b A kuu 

ROCKS , ROC, 9, 15, RUBY, RUB, , "13", SAPPHIRE, SAP, 

LUE DIAMOND, DIA, , "13", GREEN OPAL, OP A, , 1-J 
230 DATA SEAWATER, SEA, 30, "32IT'S BIG AND SALTY , SHARK, bHA, 

30, "32IT'S A GREAT WHITE, AND HE'S SEEN ME. , KELP, KEL 30 
235 DATA " 32THERE MUST BE MILES OF THIS GARBAGE. , FISH, FIS, 21 

, " 29THERE ' S ALL KINDS AROUND HERE." „ 
240 DATA HALLWAY, HAL, 3, "04IT'S SORTA DARK, I CAN T SEE MUCH 
, WALL, WAL, , , FLOOR, FLO, , , GROUND, GRO, , , SAND, SAN, 5 

245 DATA "08THERE MUST BE TON'S OF IT HERE.", COLUMNS, COL, 7, 
19VERY ORNATE, BUT NOTHING SPECIAL." „ 
250 DATA BUILDINGS, BUI, 18, "27THEY SEEM TO GO ON FOR MILES. , 

DOOR, DOO, , , fl _ . , io 21 1 

260 DATA -1, , 1, 2, , , 13, 1, 1, 14, , 1, , r 1, l^r § t 

, 1, 22, , , 24, , , 26, 1, 1, 29, , , -23, , 
270 DATA IN A SEA GROTTO, WALLS, S , 2, y, , / 
280 DATA IN A SMALL CHAMBER, DOOR. WALLS., "E , 1, , , , , 

21 1 

290 DATA IN A SMALL ROCK ROOM, CRACK IN WALL. HALLWAY, N ", 

10 ' 4 ' ' ' ' ' 1 || _ „ . \ A \ 

300 DATA IN ANOTHER ROOM, HALLWAY, "S , 3, , , , , 14, l 

310 DATA ON THE BEACH OF A SOUTH SEA ISLAND, "ROAD. OCEAN. SAILB 

OAT.", "ES ", 6, 32, 11, , 19, , 1 
320 DATA IN A JUNGLE CLEARING, "ROAD, VERY OLD. TEMPLE.", W 

"57 2 
3 30 DATA INSIDE AN ' ORNATE TEMPLE, ENTRANCE. WALLS., "W ", 6, 

340 # DATA At'tHE GATES OF HERCULES, OCEAN. SEA CAVE. PATH UP CLIF 

F., "ENW ", 31, 9, 10, , , , 3 
350 DATA IN A SEA CAVE, , "NS ", 1, 8, , , , , 1 
360 DATA AT THE TOP OF A CLIFF, PATH. CRACK IN CLIFF., "D " , 

8, 3, ,,,,4 
370 DATA ON A SAILBOAT, SHORE, , 5, , , , , , 5 

380 DATA ON A DOCK IN HAWAII, PAWNSHOP. SAIL- BOAT., "N ", 

13, 11, , , , , 4 
390 DATA IN A PAWNSHOP, DOOR. COUNTER., " S " , , 13, , 12, , 

, 8 

400 DATA IN A PALATIAL ROOM, DOOR. BED. BALCONY., " N ", 17, 

15, 16, , , , 1 
410 DATA IN BED, , , 14, , , , , , 6 

420 DATA ON A BALCONY, BALCONY RAIL., " S ", , 14, , , , , 4 
430 DATA IN AN OLD DUSTY LIBRARY, HALLWAY., "W ", 14, , , , 

, 5, 1 

440 DATA IN A GIGANTIC UNDERWATER CITY, DOOR. SMALL PLAZA. BUILD 

INGS., "SNEWU ", 26, 28, 29, 27, 30, , 
450 DATA IN A TEMPLE 100 FT. UNDERWATER, WALLS, " U " , , , 32 

i i i 8# 3 

460 DATA IN DAVY JONES LOCKER, NOTHING, , 20, 20, 20, 20, 20, 20 
, 

470 DATA "IN A SMALL ROOM, UNDERWATER!", DOOR. WALLS., , 22, , , 
, , 32, 1 



40 BASIC Adventures 



Atlantean Odyssey 



480 DATA IN A LARGE HALL, DOOR. ALCOVE. COLONADE., "SNE ", 21, 
23, 24, , , , 1 

490 DATA IN FRONT OF A LARGE WALL SCULPTURE, , " NSE ", 25, 22, 
22, 22, , , 7 

500 DATA IN AN ANTE-CHAMBER, DOOR., "WE " , 22 , 22 , , , , , 1 

510 DATA IN A NARROW PASSAGE, , "SN " , 2 3 , 2 6 , , , , , 4 
520 DATA IN FRONT OF A DOOR, DOOR., " S " , 18 , 25 , , , , , 8 
530 DATA LOST IN AN UNDERWATER CITY, BUILDINGS., NSEWU , 27, 27, 
27, 27, 30, , 

540 DATA IN A SMALL PLAZA, STREET. BUILDING., "ENU ", 18, 29, 
30, , , , 1 

550 DATA IN A BUILDING, DOOR. WINDOW., , 27, 28, , , , , 1 
560 DATA IN THE ATLANTIC OCEAN, , "NSEWD ", 30, 30, 30, 30, 18, 
, 1 

570 DATA IN THE MEDITTERANEAN OCEAN, , "NSEW ", 31, 31, 31, 8, 

9 t 1 

580 DATA IN THE PACIFIC OCEAN, , "NSEWD ", 5, 32, 32, 32, 19, , 
1 

590 FOR I = TO 62 : READ COMND(I) : NEXT 

600 FOR I = TO 39 : FOR J = TO 3 : READ OBJET(I, J) : NEXT J 
610 NEXT I 

620 FOR I = TO 11 : READ DOO ( I , 0), DOO(I, 1), DOO(I, 2) : NEX 
T I 

630 PRINTS 970, "FREE HINT - WATCH THE FLOOR/GROUND"; 
640 FOR I = 1 TO 32 : FOR J = TO 9 : READ N (I , J) : NEXT J : N 
EXT I 

650 PRINTS 960, CHR$(30); 

660 PRINTS 975, "PRESS ENTER TO BEGIN."; 
670 IF INKEY$ = "" THEN 670 

690 CLS : L = 5 : INPUT "DO YOU WANT TO CONTINUE A PREVIOUS GAME 

"; Q : IF LEFT$ (Q, 1) - "Y" THEN GOSUB 16360 
1000 GOTO 15010 

1030 PRINTS 0, CHR$(30) : PRINT : PRINT : PRINT : PRINT : PRINT 
: PRINT : PRINT : PRINT : PRINT : PRINTS 0, "I AM "N(L, 0)"."; 

1040 RETURN 

4 520 REM IFPOS (0) +LEN (OBJET(I ,0) ) > 1 2ANDJ<704THENJ=J+64 : PRINTS J , 

6JET(I,0);". " ; : RETURN 

4530 PRINT OBJET(I, 0); ". " ; : RETURN 

4550 PRINT N(L, 1); : RETURN 

4620 PRINTS J, M; : J = J + 64 
4630 RETURN 
4700 RETURN 
4710 RETURN 

4800 Dl = : FOR I = TO 11 : IF DOO(I, 0) <> L THEN 4820 

4810 IF DOO(I, 2) = 1 THEN Dl = 1 
4820 NEXT : RETURN 

5000 IF Bl = THEN Bl = 1 : RETURN 

5010 IF B2 = THEN B2 = 1 : RETURN 

5020 IF B3 = THEN B3 = 1 : RETURN 

5030 IF B4 = THEN B4 ■ 1 : RETURN 

5040 IF B5 =0 THEN B5 = 1 : RETURN 
15000 REM 



Atlantean Odyssey 



BASIC Adventures 41 



IF W < THEN L2 = 
18 THEN *Z 1 I Mil « J AND W < 10 PRINT "THE LAM 
11 III" J-nci npin.- 2 IF W < 4 THEN PRINT "HEY , I 



15010 IF L2 = 1 THEN W = W - 1 

15020 IF L > 

P'S BATTERIES ARE ALMOST DEAD." : IF W 
DON'T NEED A LIGHT, THE WATER IS PHOSPHORESCENT. 

15030 Zl = Zl + 1 

15040 IF OBJET(13, 2) = "-3" THEN Al = Al - 1 
15050 IF L > 4 THEN 15090 

15060 IF L2 = 1 AND OBJET(5, 2) = THEN 15090 

15070 PRINT "IT'S TOO DARK TO SEE i " 
15080 GOTO 15420 

> 17 AND L < 31 THEN 15130 



GOTO 15170 



15090 IF L 

15100 IF T < 1 THEN OBJET(24, 2) = "" 
15110 T = T - 1 
15120 GOTO 15170 

15130 IF OBJET(24, 2) = "-4" THEN GOTO 15170 
15140 IF OBJET(13, 2) = "-3" AND Al > THEN GOTO 15170 
15150 PRINTS 960, "I'M UNDERWATER! I CAN'T BREATHE'" 
15160 L = 20 

15170 GOSUB 1030 

15171 PRINT© 64, "I CAN RECOGNIZE:"; 

15172 PRINT© 128, ""; 
15180 J = 128 : FOR I = TO 23 

OSUB 4520 
15190 NEXT I 
15200 FOR I = 28 TO 31 

T(I, 3)) > = 
15210 NEXT I 
15220 FOR I = 36 TO 37 

3) ) = L THEN GOSUB 4520 
15230 NEXT I 
15240 FOR I = TO 11 
15250 IF DOO(I, 0) <> L THEN 15280 
15255 IF L = 1 THEN GOSUB 4700 
15260 IF DOO(I, 2) = 1 THEN PRINT "CLOSED 
15270 PRINT "OPEN "; 
15280 NEXT 

1528 5 REM IFPOS ( ) +LEN (N (L,l) ) > 15THENJ=J + 64 : PRINT© J , " " ; 

15290 REM IFLEN (N (L, 1) ) >15ANDJ<704THENGOSUB4550 :GOTO15 30 

15295 PRINT N(L, 1) ; 

15300 IF N(L, 2) = "" THEN 15420 

15305 REM J=J + 64: IFJ<704 THENPRINT© J , " " ; 

15310 PRINT : PRINT "OBVIOUS EXITS -"; 

15315 REM J=J+64:IFJ<704THENPRINT©J,""; 

15320 XI = : FOR I = 1 TO 6 

15330 M = MID$(N(L, 2) , I, 1) 



IF VAL(OBJET(I, 2) ) = L THEN G 



IF VAL(OBJECT(I, 2)) <= L AND VAL(OBJEC 
THEN GOSUB 4520 

IF VAL(OBJET(I, 2)) = L OR VAL(OBJET(I, 



GOTO 15280 



15340 


IF 


M 




"N" 


THEN 


PRINT 


"NOR 




: XI 


= XI 


+ 


1 


15350 


IF 


M 




"S" 


THEN 


PRINT 


"SOU 


r 


: XI 


= XI 


+ 


1 


15360 


IF 


M 




" E " 


THEN 


PRINT 


"EAS 


/ 


: XI 


= XI 


+ 


1 


15370 


IF 


M 




"W" 


THEN 


PRINT 


"WES 




: XI 


= XI 


+ 


1 


15380 


IF 


M 




■ U" 


THEN 


PRINT 


"UP " 


• « 
i « 


XI 


= XI 


+ 1 




15390 


IF 


M 




"D" 


THEN 


PRINT 


"DOW 


i 


: XI 


= XI 


+ 


1 



15 395 REM IFX1 > 3THEN J=J + 64 : IFJ<704THENPRINT©J , " n ; 
15400 NEXT 

15420 PRINT© 960, "WHAT DO I DO NOW"; 



42 BASIC Adventures 



Atlantean Odyssey 



15430 INPUT Q 

15440 IF Al < 15 AND OBJET(13, 2) = "-3" THEN IF RND ( 3 ) < 3 THEN 

PRINT "I'M RUNNING LOW ON AIR" 
15450 IF Q <> "SET SAIL" OR L <> 11 THEN 15500 
15460 IF N(ll, 3) = "5" THEN N(ll, 3) = "12" : GOTO 15480 
15470 N(ll, 3) = "5" 

15480 PRINT "AFTER THREE FUN DAYS AT SEA..." 
15490 GOTO 15000 

15500 IF Q <> "GET UP" OR L <> 15 THEN 15520 

15510 L = 14 : GOTO 19560 

15520 XI = LEN(Q) 

15530 IF XI > 2 THEN 15570 

15540 IF XI = 1 THEN 16040 

15550 PRINT "WHAT?" 

15560 GOTO 15000 

15570 FOR X2 = 3 TO XI 

15580 Ml = MID$(Q, X2, 1) 

15590 IF Ml = CHR$(32) THEN 15620 

15600 NEXT X2 

15610 X2 - XI 

15620 Ml = LEFT$(Q, 3) 

15630 IF X2 <> XI AND X2 + 3 > XI THEN 19520 

15640 REM *** FIND COMMAND *** 

15650 FOR I = TO 62 

15660 IF Ml * COMND(I) THEN 15710 

15670 NEXT I 

15680 IF X2 = XI THEN 19520 
15690 GOTO 19550 

15700 REM *** WAS IT A DIRECTION? *** 
15710 IF I < 7 THEN J = I : GOTO 15960 
15720 REM *** ONE WORD COMMANDS *** 
15730 IF I < 17 THEN 16200 
15740 Ml = MID$(Q, X2 + 1, 3) 
15750 IF I < 23 THEN 15820 
15760 REM *** FIND OBJECT MATCH *** 
15770 FOR J = TO 39 

15780 IF Ml = OBJET(J, 1) THEN 17270 
15790 NEXT 
15800 J = 

15810 REM *** EXITS POSSIBLE *** 
15820 IF N(L, 1) « "" THEN 15960 
15830 Z = 1 
15840 A = Z 

15850 XI = LEN (N ( L , 1) ) 
15860 FOR X2 = 5 TO XI 

15870 IF MID$(N(L, 1), X2, 1) <> CHR$(46) AND X2 <> XI THEN 1592 


15880 M = MID$(N(L, 1), Z, 3) 

15890 IF M = Ml THEN XI = A : GOTO 16090 

15900 Z = X2 + 2 

15910 A = A + 1 

15920 NEXT X2 

15930 IF I > 26 THEN 17900 
15940 IF I > 22 THEN 19550 



Atlantean Odyssey 



BASIC Adventures 43 



THEN 16090 



2)) 



16100 IF I 
16110 IF I 



GOTO 17900 



15950 REM *** COMPASS DIRECTIONS - THREE LETTER 

15960 FOR I = 1 TO 6 

15970 IF Ml = COMND(I) THEN 16040 
15980 NEXT 

15990 IF J <> THEN 19540 

16000 IF Ml <> COMND(0) THEN 19530 AC£ , TM r por HINTS" 

16010 IF Zl < 30 PRINT "IT'S TOO SOON TO BE ASKING FOR HINT b . 

: GOTO 15000 

16020 GOTO 19830 n ... 

16030 REM *** COMPASS DIRECTIONS - ONE LETTER 
16040 FOR XI = 1 TO 6 
16050 M = MID$(N(L, 2), XI, 1) 
16060 IF M = Q OR M = LEFT$ (Ml , 1) 
16070 NEXT 
16080 GOTO 19540 
16090 LI = VAL (N ( L , XI + 

> 25 THEN A = 

> 22 THEN 19530 
16120 IF M <> "DOO" THEN 16170 

16130 FOR II = TO 11 : IF DOO(Il, 0) <> L THEN 16160 
16140 IF DOO(Il, 1) = 1 THEN 19760 
16150 IF DOO(Il, 2) = 1 THEN 19770 
16160 NEXT II 

16170 IF LI <> THEN L = LI : GOTO 19560 
16180 GOTO 19550 

16190 REM *** ONE WORD COMMANDS *** 

16200 ON I - 7 GOSUB 16310, 16430, 16620, 16740, 16950, 16980, 1 

7090, 17180, 17210 
16210 IF I <> 7 THEN 15000 
16220- REM *** QUIT *** 
16230 PRINT "OK" 
16240 GOSUB 16440 

16250 PRINT "DO YOU WANT TO PLAY ANOTHER GAME"; 
16260 INPUT Q 

16270 IF LEFT$ (Q, 1) = "Y" THEN RUN 
16280 IF LEFT$ (Q, 1) <> "N" THEN 16250 
16290 NEW 

16300 REM *** SAVE GAME *** 

16310 INPUT "IS THE TAPE PLAYER READY"; Q 

16320 IF Q <> "Y" THEN PRINT "NO SAVE PERFORMED." : RETURN 
16330 PRINT#-1, Al, B, D, F, HI, IM, IN, L, L2, L3, S, SI, T, Tl 

, W, Zl 
16340 FOR I = TO 21 

T(I, 2), OBJET (I , 3) 
16350 FOR I = TO 11 

) : NEXT : RETURN 
16360 INPUT "PRESS ENTER WHEN THE TAPE RECORDER IS READY. READY" 

; Q 

16370 IF LEFT$(Q, 1) <> "Y" THEN RETURN 

16380 INPUT#-1, Al, B, D, F, HI, IM, IN, L, L2, L3. S» SI, T, Tl 
, W, Zl 

16390 FOR I = TO 21 : INPUT#-1, OBJET(I, 0), OBJET(I, 1), OBJE 
T(I, 2), CHR$(34); OBJET(I, 3); CHR$(34) : NEXT 

16400 FOR I = TO 11 : INPUT#-1, DOO ( I , 0), DOO(I, 1), DOO(I, 2 
) : NEXT 



PRINT#-1, OBJET ( I , 0), OBJET(I, 1), OBJE 
NEXT 

PRINT#-1, DOO(I, 0), DOO(I, 1), DOO ( 1 , 2 



44 BASIC Adventures 



Atlantean Odyssey 



16440 
16450 



Z = Z + 1 



SINCE YOU HAD TO USE THE SAVE 



16410 RETURN 

16420 REM *** SCORING *** 
16430 IF L <> 13 THEN 19570 

Z = : FOR I = 16 TO 21 
J = VAL(OBJET(I, 2) ) 
16460 IF J = L OR J = - 1 THEN 
16470 NEXT 

16480 PRINT "I HAVE" Z "TREASURES , TOTALING"Z/6 * 100"%" 
16490 IF Z = 6 THEN 16510 
16500 GOTO 19580 

16510 PRINT : IF S > THEN PRINT 

ROUTINE" : GOTO 19800 
16520 IF HI > THEN PRINT "SINCE YOU HAD TO USE THE HINTS..." : 

GOTO 19800 

16530 IF D > THEN PRINT "IF YOU HADN'T KILLED YOUR ANDROID, YO 

U WOULD HAVE RATED..." 
16540 IF Zl < 95 THEN PRINT "A PROFESSIONAL" 

94 AND Zl < 120 THEN PRINT "AN EXPERT" 
119 AND Zl < 200 THEN PRINT "A VERY GOOD" 
199 AND Zl < 300 THEN 19800 
299 THEN PRINT "A NOVICE" 
16590 PRINT "ADVENTURER, FINISHED IN" Z 1 "MOVES . " 
16600 GOTO 16250 
16610 REM *** HELP ** 
16620 J = VAL (N (L, 9) ) 

16630 ON J GOTO 16640, 16650, 16660, 16670, 16680, 16690, 16700, 

16710, 16720 
16640 PRINT "TRY EXAMINING THINGS." : RETURN 
16650 PRINT "TRY DIGGING." : RETURN 

16660 PRINT "TRY PUSHING ONE OF THE MEDALLION'S JEWELS." 



16550 IF Zl 

16560 IF Zl 

16570 IF Zl 

16580 IF Zl 



RETUR 



N 



16670 PRINT "DON'T STOP HERE." : RETURN 

16680 PRINT "TRY 'SET SAIL'" : RETURN 

16690 PRINT "WELL, GET UP, LAZY!" : RETURN 

16700 PRINT "DO YOU HAVE THE CYLINDER?" : RETURN 

16710 PRINT "TRY 'TRADE TANKS'." : RETURN 

16720 PRINT "PUSH THE MEDALLION'S DIAMOND." : RETURN 

16730 REM *** INVENTORY *** 

16740 PRINT "I HAVE :"; 

16750 IF OBJET(13, 2) = "-3" THEN PRINT "THE SCUBA GEAR, WHICH I 

'M WEARING." 

16760 IF IM > THEN 16780 

16770 PRINT "NOTHING!" : RETURN 

16780 FOR I = TO 21 

16790 IF I = 1 THEN 16830 

16800 IF VAL(OBJET(I, 2)) <> - 

16810 IF (L2 = 1 AND I = 5) OR 

PRINT "LIT "; 

16820 PRINT OBJET (I, 0)". "; 

16830 NEXT 

16840 IF VAL(OBJET(l, 2)) <> - 1 THEN PRINT 



1 THEN 16830 
(L3 = 1 AND I 



= 6 AND F = ) THEN 



RETURN 



16850 PRINT : PRINT "THE "; OBJET(l, 0)", WHICH CONTAINS"; 
16860 IF IN = THEN PRINT " 
16870 PRINT " : "; 



NOTHING i" 



RETURN 



Atlantean Odyssey 



BASIC Adventures 45 



16880 FOR I = TO 21 

16890 IF I = 1 THEN 16910 m fl t h «. 

16900 IF VAL(OBJET(I, 2)) = - 2 THEN PRINT OBJET(I, 0) . , 

16910 NEXT 

16920 PRINT 

16930 RETURN 

16940 REM *** LISTEN *** 

16950 PRINT "I CAN HEAR NOTHING UNUSUAL." 
16960 RETURN 

16970 REM *** CLIMB *** n o 17fl . fl 

16980 IF L = 8 OR L = 10 THEN IF RND(10) < 2 THEN 17030 
16990 IF L = 8 THEN L = 10 : RETURN 
17000 IF L = 10 THEN L = 8 : RETURN 
17010 IF L <> 16 THEN 17060 
17020 GOSUB 19590 

17030 PRINT "OH NO... I'M SLIPPING"; 

17040 FOR I = 1 TO 100 : NEXT 

17050 GOTO 17190 

17060 PRINT "CLIMB WHAT?" 

17070 RETURN 

17080 REM *** DIG *** 

17090 IF L > 11 THEN PRINT "ARE YOU KIDDING? I CAN'T DO THAT HER 
E." : RETURN 

17100 IF L <> 6 THEN PRINT "OUCH, HURT MY HANDS ON ROCKS ! : GO 
TO 17150 

17110 IF VAL(OBJET(18, 2)) <> - 6 THEN 17150 
17120 PRINT "BOY, IS THE GROUND SOFT HERE. 
HEY ! I FOUND SOMETHING!" 
17130 OBJET(18, 2) = "6" 
17140 RETURN 

17150 PRINT "THERE'S NOTHING HERE." 

17160 RETURN 

17170 REM *** JUMP *** 

17180 IF L <> 10 AND L <> 16 THEN 19590 

17190 PRINT "I FELL 150 FEET TO THE ROCKS BELOW, 

I 'M DEAD." 

17200 GOTO 16250 

17210 REM *** SWIM *** 

17220 IF L < 18 THEN 19600 

17230 IF XI = X2 THEN 19610 

17240 GOTO 15770 

17250 GOTO 19610 

17260 REM *** EXAMINE *** 

17270 IF I > 26 THEN 17900 

17280 IF J = THEN 15550 

17290 XI = VAL(OBJET(J, 3)) 

17300 X2 = VAL(OBJET(J, 2)) 

17310 IF J > 23 THEN 17660 

17320 IF J = 15 AND (OBJET(13, 2) = "-1" OR OBJET(13, 2) = "-3") 
THEN 17340 

17330 IF L <> X2 AND X2 <> - 1 AND X2 <> - 2 THEN 19640 
17340 IF LEN (OBJET (J , 3) ) = 2 THEN 17360 
17350 PRINT RIGHT$ (OBJET (J , 3), LEN (OBJET (J , 3)) - 2) 
17360 IF XI = THEN 15000 



46 BASIC Adventures 



Atlantean Odyssey 



17370 ON XI GOSUB 17390, 17410, 17420, 17440, 17460, 17470, 1749 

0, 17510, 17530, 17560, 17570, 17590, 17610, 17620, 17630 
17380 GOTO 15000 

17390 IF IN > THEN PRINT "AND THERE'S SOMETHING IN IT." : RETU 
RN 

17400 RETURN 
17410 GOTO 19630 

17420 IF VAL(OBJET(21, 2)) = - 14 THEN PRINT "AND THEY'RE HELD B 

ACK BY A STRING OF "OBJET(21, 0)"." : OBJET(21, 2) = "14" 
17430 RETURN 

17440 IF I = 26 THEN PRINT "AND IT SAYS 'BRING TREASURES HERE. 

SAY <SCORE>.' 
17450 RETURN 

17460 PRINT "AN ODD BATTERY INDICATOR, IT SHOWS 'GOOD FOR"W" MOV 
ES'." : RETURN 

17470 IF F = THEN PRINT "AND THE BATTERY IS GOOD." : RETURN 
17480 PRINT "BUT THE WATER RUSTED IT UP." : RETURN 
17490 IF 81 = 1 THEN PRINT "BUT THEY'RE CRUMBLING AWAY." 
17500 RETURN 

17510 IF VAL(OBJET(19, 2)) = - 23 THEN PRINT "THERE'S SOMETHING 

UNDER IT! " : OBJET(19, 2) = "23" 
17520 RETURN 

17530 IF SI = THEN PRINT "BUT THERE AREN'T ANY TRIDENTS LEFT." 
: RETURN 

17540 PRINT "IT'S LOADED WITH"S1; : IF SI = 1 THEN PRINT " TRIDE 

NT." : RETURN 
17550 PRINT " TRIDENTS." : RETURN 
17560 PRINT Al" MOVES." : RETURN 

17570 IF VAL(OBJET(17, 2)) = - 4 THEN PRINT "THERE'S SOMETHING I 

N IT." : OBJET (17, 2) = "4" 
17580 RETURN 

17590 IF VAL(OBJET(20, 2)) = - 28 THEN PRINT "I SEE SOMETHING." 

: OBJET(20, 2) = "28" 
17600 RETURN 
17610 GOTO 19650 

17620 PRINT "IT'S BROKEN INTO PIECES." : RETURN 

17630 IF VAL(OBJET(5, 2)) = - 9 THEN PRINT "THERE'S SOMETHING HE 

RE." : OBJET (5, 2) = "9" 
17640 RETURN 

17650 REM *** MULTIPLE LOCATION ITEMS *** 
17660 IF J > 27 THEN 17690 

17670 IF VAL(OBJET(18, 2)) <> - 1 THEN 19620 

17680 GOTO 19530 

17690 IF J > 32 THEN 17740 

17700 IF L > XI OR L < X2 THEN 19640 

17710 XI = L 

17720 GOSUB 17850 

17730 GOTO 15000 

17740 ON J - 32 GOSUB 17760, 17830, 17830, 17850, 17850, 17850, 

17870 
17750 GOTO 15000 

17760 IF L = 1 THEN GOSUB 17820 : PRINT "AND THERE'S THE OUTLINE 
OF A DOOR AROUND HIM." : IF DOO(0, 0) = - 1 THEN DOO(0, 0) = 
1 : N(L, 1) = "DOOR. " + N(L, 1) : RETURN : ELSE RETURN 



Atlantean Odyssey 



BASIC Adventures 47 



17770 IF L - 7 THEN GOSUB 17820 : PRINT "HE'S UNDERWATER , AND TH 
E MEDALLION 1 S RUBY IS GLOWING!" : RETUR ^ UI? nDAr TN TT A ppp ARQ 
17780 IF L = 19 THEN GOSUB 17820 : PRINT "THE OPAL IN IT APPEARS 

TO BE GLOWING I " : RETURN nPDDPQQTON tm <?h 

17790 IF L = 21 THEN PRINT "THERE'S A PYRAMIDAL DEPRESSION IN TH 

: RETURN 

= 23 THEN GOSUB 17820 
: RETURN 



E WALL." 
17800 IF L 
LOWING. " 



PRINT "THE DIAMOND IN IT IS G 



17810 GOTO 19630 . m % u _ xl tII?ADTMr 

17820 PRINT "I SEE A BASE RELIEF SCULPTURE OF A MAN WEARING 



DALLION • " : RETURN 
17830 IF L = 2 OR L = 



L = 24 OR L 
: RETURN 



A ME 



= 4 



= 13 OR L = 14 OR L = 15 OR 
22 OR L = 24 OR L = 26 OR L 



LEN (OBJ 



= 18 
29 TH 



17 OR L = 19 OR L = 21 OR 
THEN PRINT "THERE'S A HEXAGON PAINTED ON IT." 
17840 GOTO 19630 m/ , . 

17850 IF L = XI OR L = X2 THEN PRINT RIGHT $ (OBJET (J , 3), 

ET(J, 3) ) - 2) : RETURN 
17860 GOTO 19660 
17870 IF L = 1 OR L = 2 OR 

OR L = 21 OR L = 23 OR L 

EN GOTO 19650 
17880 PRINT "WHAT DOOR?" : RETURN 

17890 REM *** GET, TAKE, PICKUP, MOVE, GRAB, UNLOAD *** 
17900 IF I > 31 THEN 18040 

17910 IF A = AND I > 26 AND I < 48 THEN 19680 
17920 IF J > 21 THEN 19680 

17930 IF J = 11 THEN PRINT "I CAN'T DO THAT, THAT'S STEALING ! " : 
GOTO 15000 

17940 IF J = 9 THEN IF Bl = OR B2 = OR B3 = OR B4 = OR B 
5=0 THEN PRINT "THEY JUST CRUMBLE TO DUST." : GOSUB 5000 : I 
F B5 = THEN 15000 ELSE OBJET(9, 0) = "DUST" : OBJET(9, 1) = 
"DUS" : OBJET(9, 3) - "00ACHOOO!" : GOTO 15000 

17950 XI = VAL(OBJET(J, 2)) 



17960 IF XI - - 1 THEN PRINT "I ALREADY HAVE IT. 



GOTO 15000 



17970 IF XI <> L AND (XI <> - 2 OR OBJET(l, 2) <> "-1") THEN 196 
20 

17980 IF IM > 5 THEN 19670 

17990 IM = IM + 1 

18000 OBJET(J, 2) = "-1" 

18010 IF XI = - 2 THEN IN = IN - 1 

18020 GOTO 19560 

18030 REM *** UNLOCK, UNLOAD, UNLIGHT *** 
<> 32 THEN 18170 
= 5 THEN L2 = : GOTO 19560 
= 6 THEN L3 = : GOTO 19560 
<> 38 THEN 19550 
18080 FOR X2 = TO 11 
18090 IF DOO(X2, 0) <> L THEN 18140 

IF DOO(X2, 1) = THEN PRINT "IT'S ALREADY UNLOCKED." : RE 



18040 IF I 

18050 IF J 

18060 IF J 

18070 IF J 



18100 
TURN 

18110 IF OBJET(16, 
18120 IF OBJET(17, 
18130 GOTO 19810 
18140 NEXT 
18150 GOTO 19700 



2) = "-3" THEN DOO(6, 1) = 
2) = "-3" THEN DOO(9, 1) = 



48 BASIC Adventures 



Atlantean Odyssey 



18160 REM *** DROP, PUT, PLACE, GIVE, TRADE, SET, LOAD, THROW T 

OSS *** 
18170 IF I > 41 THEN 18530 
18180 IF J > 39 THEN 19540 
18190 XI = VAL(OBJET(J, 2)) 

18200 IF XI <> - 1 AND J <> 11 THEN 19690 

18210 IF I <> 39 THEN 18300 

18220 IF J <> 14 THEN 19520 

18230 INPUT "WITH WHAT"; Q 

18240 IF LEFT$(Q, 3) <> "TRI" THEN 19550 

18250 IF OBJET(0, 2) <> THEN 19690 

18260 OBJET(0, 2) = "" 

18270 IM = IM - 1 

18280 SI = SI + 1 

18290 GOTO 15000 

18300 IF I = 34 OR I = 35 THEN 18410 
18310 IF I <> 37 OR J <> 11 THEN 18390 

18320 IF Tl = 1 THEN PRINT "BUT THEY'RE EMPTY 1 " : GOTO 15000 
18330 IF L = 13 THEN GOSUB 19920 : IF Z = THEN 15000 ELSE OBJE 

T(ll, 2) = "-1" : IF X = - 1 THEN IM = IM + 1 
18340 XI = VAL(OBJET(13, 2) ) : IF XI <> L AND XI <> - 1 AND XI < 

> - 3 THEN 17990 
18350 PRINT "OOPS, THE OLD TANKS LOST THEIR AIR WHEN I CHANGED 
TO THE TWO NEW ONES, BUT THE NEW ONES ARE FINE i " 
18360 Al = 50 
18370 Tl = 1 
18380 GOTO 19560 
18390 IM = IM - 1 

18400 OBJET(J, 2) - STR$(L) : GOTO 19560 
18410 INPUT "IN WHAT"; Q 

18420 IF LEFT$(Q, 3) = "WAL" THEN IF L = 21 AND J = 16 THEN DOO ( 

6, 1) = : DOO(6, 2) = : GOTO 19820 
18430 IF LEFT$(Q, 3) = "MET" THEN IF L = 26 AND J « 17 THEN DOO ( 

9, 1) = : DOO(9, 2) - : GOTO 19820 
18440 IF LEFT$(Q, 3) <> "KNA" THEN 18390 
18450 IF OBJET(J, 2) <> "-1" THEN 19690 
18460 IF IN > 5 THEN 19780 
18470 IN = IN + 1 
18480 IM = IM - 1 
18490 OBJET(J, 2) = "-2" 
18500 GOTO 19560 

18510 REM *** MISCELLANEOUS COMMANDS *** 

18520 REM *** OPEN CLOSE *** 

18530 IF I > 43 THEN 18680 

18540 IF J = 8 THEN 19710 

18550 IF J <> 39 THEN 19560 

18560 FOR XI = TO 11 

18570 IF DOO(Xl, 0) <> L THEN 18660 

18580 IF I = 43 THEN 18630 

18590 IF DOO(Xl, 1) = 1 THEN 19760 

18600 IF DOO(Xl, 2) = THEN PRINT "IT'S ALREADY OPEN." : GOTO 1 
5000 

18610 DOO(Xl, 2) = 
18620 GOTO 19560 



Atlantean Odyssey 



BASIC Adventures 49 



.« itkic MRFADY CLOSED." : GOTO 
18630 IF DOO(Xl, 2) = 1 THEN PRINT "IT'S ALREADY L 

15000 

18640 DOO(Xl, 2) = 1 
18650 GOTO 19560 
18660 NEXT 

18670 GOTO 19700 toei* 18850. 19110. 

18680 ON I - 43 GOSUB 18700, 18720, 18760, 19510, 18850, 1*110, 
19110, 19110, 19190, 19220, 19280, 19310, 19310, 19310, 19350, 
19350, 19350, 19360, 19440 

18690 GOTO 15000 nMnpnwaTPR Y0U DUMMY." : RETURN 

18700 IF L > 17 THEN PRINT "I'M UNDERWATER YUU uunni 

18710 PRINT "I DON'T HAVE ANY MATCHES." : RETURN 

18720 IF J = 5 THEN L2 = 1 I GOTO 19590 

18730 IF F = 1 THEN 17440 

18740 IF J = 6 THEN L3 = 1 ! GOTO 19590 

18750 GOTO 18700 owacu htm " • RFT 

18760 IF J = 29 AND L > 29 THEN PRINT "I CAN'T REACH HIM. . RET 

URN 

18770 IF J < 18 OR J > 27 THEN 19510 

\V,ll S ff^ti^l =^ 23 _ THEN^PRINT^ "THE SCULPTURE MOVED » : X 
F DOO(ll, 0) = - 23 THEN DOO ( 1 1 , 0) = 23 : N(L, 1) - DOOR. : 

RETURN : ELSE RETURN fe « TM * ,, T <r rx nui 

18800 IF J = 24 THEN OBJET(J, 2) = "-4" : T = 2 : PRINT "IT GLOW 

ED BRIEFLY!" : RETURN 
18810 IF J = 25 AND L = 20 THEN D = D + 1 : L = RND(10) : RETURN 

18820 IF J <> 27 THEN 19510 

18830 IF L = 2 OR L = 4 OR L = 17 OR L = 19 OR L = 21 THEN L = V 

AL(N(L, 8)) : CLS : RETURN 
18840 GOTO 19510 
18850 REM *** SHOOT *** 
18860 IF J = 14 THEN 19050 
18870 INPUT "WITH WHAT"; Q 
18880 IF LEFT$(Q, 3) <> "SPE" THEN 19720 
18890 IF OBJET(14, 2) <> "-1" THEN 19730 
18900 IF SI = THEN 17530 
18910 IF J <> 29 THEN 18960 ^ 
18920 IF L < 30 THEN 19740 
18930 PRINT "I GOT'IM! UH OH! 
HE'S MAD. HE ATTACKS AND KILLS ME! 
I'M DEAD." 
18940 L = 20 
18950 RETURN 

18960 IF J <> 32 THEN 18990 

18970 IF L < 19 OR L > 29 THEN 19600 

18980 IF RND(10) < 2 THEN PRINT "GOT ONE! BUT IT SWAM AWAY WITH 

THE TRIDENT." : SI = SI - 1 : RETURN 
18990 GOSUB 19750 
19000 GOTO 19020 
19010 GOSUB 19590 
19020 SI = SI - 1 
19030 OBJET(0, 2) = STR$(L) 



50 BASIC Adventures 



Atlantean Odyssej 



19040 RETURN 

19050 INPUT "AT WHAT"; Q 

19060 FOR J = TO 39 

19070 IF OBJET(J, 1) = LEFT$(Q, 3) THEN 18890 

19080 NEXT 

19090 GOTO 19720 

19100 REM *** BREAK, HIT, KICK *** 

19110 IF J > 21 THEN 19510 

19120 XI = VAL(06JET(J, 2)) 

19130 IF XI <> L AND XI <> - 1 THEN 19740 

19140 IF XI = - 1 THEN IM = IM - 1 

19150 IF XI = - 2 THEN IN = IN - 1 

19160 OBJET(J, 2) = STR$(L) 

19170 OBJET(J, 3) = "14" 

19180 RETURN 

19190 IF J = 29 AND L > 29 THEN 18930 

19200 GOSUB 19590 

19210 GOTO 19510 

19220 IF J <> 39 THEN 19720 

19230 FOR X2 = TO 11 

19240 IF DOO(X2, 0) <> L THEN 19270 

19250 IF DOO(X2, 1) = 1 THEN PRINT "IT'S ALREADY LOCKED." : RETU 
RN 

19260 GOTO 19810 

19270 NEXT : PRINT "WHAT DOOR?" : RETURN 

19280 GOSUB 19590 

19290 PRINT RIGHT$(Q, LEN(Q) - 4) 

19300 RETURN 

19310 IF J <> 29 AND J <> 32 THEN 19720 

19320 PRINT "IT'S TOO FAST FOR ME." 

19330 RETURN 

19340 PRINT "I CAN'T DO THAT, I'M NOT REALLY ALIVE." 

19350 RETURN 

19360 IF J = 18 THEN PRINT "IT DOESN'T HAVE A CHAIN." : RETURN 

19370 IF J <> 13 THEN 19500 

19380 IF VAL(OBJET(J, 2)) = - 3 THEN PRINT "I AM WEARING IT!" : 
RETURN 

19390 IF VAL(OBJET(J, 2)) <> L AND VAL(OBJET(J, 2)) <> - 1 THEN 
19740 

19400 IF IM > 5 THEN 19790 

19410 GOSUB 19590 

19420 IM = IM - 1 : OBJET(J, 2) = "-3" 

19430 RETURN 

19440 IF J <> 13 THEN 19500 

19450 ;F VAL(OBJET(J, 2)) <> - 3 THEN 19730 

19460 IF IM > 5 THEN 19790 

19470 OBJET(J, 2) ■ "HL" 

19480 IM = IM + 1 

19490 GOTO 19590 

19500 PRINT "HUH???" : RETURN 

19510 PRINT "NOTHING HAPPENED." : RETURN 

19520 PRINT "I MUST BE DUMB, I DON'T UNDERSTAND YOU." : GOTO 150 
00 

19530 PRINT "I CAN SEE NOTHING SPECIAL." : GOTO 15000 



Atlantean Odyssey 



BASIC Adventures 51 



19540 PRINT -I DON'T KNOW WHAT YOU WANT.": GOTO 15000 

19550 PRINT "SORRY, I CAN'T DO THAT." : GOTO 15000 

19560 PRINT "OK" : GOTO 15000 ^ * „ ■ RETURN 

19570 PRINT "I CAN'T, I'M IN THE WRONG PLACE . RE ™™ 

19580 PRINT "I DON'T HAVE ALL OF THE TREASURE I . RETURN 

19590 PRINT "OK" : RETURN D _- I1DN 

19600 PRINT "I'M NOT IN WATER, DUMMY. : RETURN 

19610 PRINT "I AM SWIMMING'" : GOTO 15000 

19620 PRINT "IT'S NOT HERE." : GOTO 15000 

19630 PRINT "I SEE NOTHING OF INTEREST.' : RETURN 

19640 PRINT "I CAN'T DO THAT.... YET!" : GOTO 15000 

19650 PRINT "I SEE NOTHING SPECIAL." : RETURN 

19660 PRINT "WHERE?" : RETURN 

19670 PRINT "MY HANDS ARE FULL." : GOTO 150 00 . 
19680 PRINT "I MAY BE STRONG, BUT I'M NOT THAT STRONG . GOTO 1 

5000 

19690 PRINT "I DON'T HAVE IT!" : GOTO 15000 

19700 PRINT "WHAT DOOR?" : GOTO 15000 

19710 PRINT "IT DOESN'T HAVE A LID." : GOTO 15000 

19720 PRINT "WHAT?" : RETURN 

19730 PRINT "I DON'T HAVE IT!" : RETURN 

19740 PRINT "IT'S NOT HERE." : RETURN 

19750 PRINT "MISSED." : RETURN 

19760 PRINT "I CAN'T, IT'S LOCKED!" : GOTO 15000 
19770 PRINT "I CAN'T, ITS CLOSED." : GOTO 15000 
19780 PRINT "ITS FULL!" : GOTO 15000 

19790 PRINT "MY HANDS ARE FULL." : RETURN , rcnn 

19800 PRINT "YOU ARE AN AVERAGE ADVENTURER, YOU "; : GOTO 16590 

19810 PRINT "I DON'T HAVE A KEY!" : GOTO 15000 

19820 PRINT "HEY, IT DID SOMETHING!" : GOTO 15000 

19830 IF HI > 6 THEN PRINT "SORRY, OUT OF HINTS!" : GOTO 15000 

19840 GOSUB 19920 : IF Z - THEN 15000 

19850 ON HI GOSUB 19860, 19870, 19880, 19890, 19900, 19910 : HI 

= HI + 1 : GOTO 15000 
19860 PRINT "TO LEAVE THE UNDERWATER TEMPLE REQUIRES THE BURIED 

MEDALLION • " : RETURN 
19870 PRINT "TO CHANGE AIR TANKS, TRADE TANKS." : RETURN 
19880 PRINT "KEYS DON'T ALWAYS LOOK LIKE KEYS, SOME ARE CYLINDER 

S " * RETURN 

19890 PRINT "THE MEDALLION'S RUBY WILL LET YOU STAY UNDERWATER." 
: RETURN 

19900 PRINT "ONLY TWO TREASURES ARE UNDERWATER." : RETURN 
19910 PRINT "THE SAPPHIRE CAN GET YOU OUT OF DAVY JONES LOCKER." 
: RETURN 

19920 Z = : FOR I = 16 TO 21 : X = VAL(OBJET(I, 2)) : IF X = - 

1 OR X = - 2 OR X = L THEN Z = Z + 1 
19930 NEXT : IF Z = THEN IF I = 37 THEN PRINT "I HAVEN'T ANYTH 

ING OF VALUE." : RETURN : ELSE Z = - 1 : RETURN 
19940 INPUT "IT'LL COST A TREASURE! WHICH ONE"; Q 
19950 FOR I = 16 TO 21 : IF LEFT$ (Q, 3) ■ OBJET(I, 1) THEN 19970 

19960 NEXT : PRINT "THAT'S NOT A TREASURE" : Z = : RETURN 
19970 X = VAL(OBJET(I, 2)) : IF X <> - 1 AND X <> - 2 AND X <> L 
THEN Z = : GOTO 19740 



52 BASIC Adventures 



Atlantean OdyssV 



19980 FOR J = TO 3 : OBJET(I, J) = "" : NEXT : PRINT "EXCELLEN 

T CHOICE." 
19990 IF X » - 1 THEN IM = IM - 1 
20000 IF X = - 2 THEN IN = IN - 1 
20010 RETURN 



10 CLS : PRINT© , "WELCOME TO GRAPHIC-ADVENTURE # 1, WORLD COPYRIGH 

T (C) 1979 
BY TERRY KEPNER 
ALL RIGHTS RESERVED" 

20 PRINT"YOU ARE ABOUT TO TAKE PART IN A FANTASTIC ADVENTURE THR 
OUGH THE 

MAGIC OF COMPUTER-SIMULATION ROLE PLAYING. YOU WILL BE ABLE TO 
EXPERIENCE AND REACT TO YOUR SURROUNDING ENVIRONMENT WITH THE" 

30 PRINT" AID OF AN ANDROID. IT WILL RESPOND TO YOUR COMMANDS AND 
RELAY TOYOU ALL THAT IT EXPERIENCES, INCLUDING WHAT IT SEES 
SHARP I SO I YOU" HEAP M0DEL ' ITS EYES (MINI-CAMERAS) ARE NOT VERY 

40 PRINT"MAY HAVE TO EXAMINE THINGS IN ORDER TO DETERMINE JUST W 
HAT THEY REALLY ARE. SINCE THE ANDROID HAS A LIMITED VOCABULAR 
Y (ABOUT 70 VERBS AND OVER 100 NOUNS), IT CAN UNDERSTAND ONLY T 
WO WORD SEN- TENCES. IF ONE SENTENCE DOESN'T WORK TRY ANOTHER 

50 PRINT"SOME VERBS IT KNOWS ARE: GO, GET, DROP, HELP, INVENTORY 
, SCORE, AND UNWEAR . " ; ' ' ' AWV,1W1UKX 

60 CLEAR255 :DEFSTRC,M-Q 

70 IN=1:S1=2:A1=50:F=0:W=175:T=0:B1=0:A=1 

90 DIMCOMND(62) ,OBJET(39,3) , DOO ( 1 1 , 2) , N ( 32 , 9 ) 

110 DATAHIN,NOR,SOU,EAS,WES,UP,DOW,QUI,SAV,SCO,HEL,INV,LIS,CLI,D 
IG,JUM,SWI,GO , WAL , ENT ,EXI,RUN f CRA 

120 DATAEXA,SEA,LOO,REA,GET,TAK,PIC,MOV,GRA,UNL f DRO,PUT,PLA,GIV, 
TRA,SET, LOA,THR,TOS ,OPE,CLO ' , 

U q HT^c D f^'I RI "" 13 "KNAPSACK, KNA,ll f "01IT'S AN OLD CANVA 
4 v f D ;l PILE ° F DEBR IS,DEB,28,"12 ", CLOTH DRAPES, DRA, 

14,'03THEY APPEAR TO BE MADE OF SILK." 

taS AT ^ P « PER ° N COUNT ^PAP,13,"04THERE'S WRITING ON IT "LAMP, 

A i; ; S^JT'S A WATERPROOF LIGHT. «' , FLASHLIGHT, FLA, -2 , "06IT' S 
A METAL FLASHLIGHT." 

U D Rnv A «nv S ^ M ,^f T ' 5 ' ,,00JUST SEAWEEDS , SHELLS, AND FOAM . " , DECAYE 
updS i f 4 , " 1 1 AN OLD, OLD WOODEN BOX . " , BOOKS , BOO , 1 7 ," 07VERY , 
VERY OLD BOOKS, MAYBE THEY'RE VALUABLE." 



Atlantean Odyssey 



BASIC Adventures 53 



. qtt rnOKS LIKE VELVET. " , AIR TANK 
170 DATACLOTH MATERIAL , MAT , 23 , 08IT luu THEY 1 RE TWO-25 TU 

S , TAN , 1 3 , " STRANG E , ACCORDING TO THL y SMELLING P 

RN AIR TANKS. PILLOW, PIL, 15, "00A VERY 

ILLOW." qpE A COMPLETE OUTFIT — WETSUIT, 

180 DATASCUBA GEAR,SCU,11, 001 SEE „ 09IT , S A TWO SHOT SPE 

TANKS WITH AIR GAUGE .", SPEARGUN, SPE ,11 . pQR * 

ARGUN • " , GAUGE ,GAU, , " 10IT SAYS THAT THERE S 
190 DATA*CRYSTAL PYRAMID*, PYR, 7 "00IT LOOKS LIKE.GLASS. - ,* CYLIN 

DER *,CYL,-4,"00THERE'S A SLOT CUT IN ™E *ND. piEcE ^ 

200 DATA* MEDALLION * ,MED,-6, "00A FLA1 H&Am> 

H FOUR STONES IN IT; A RUBY, AROUND A GREEN OPAL.",*G0 

A SAPPHIRE, AND A BLUE DIAMOND, PLACED AROUNU « u 

BLACK 

21 E A RLS A *,PE A ,-14 iv|» [ 6 ^™? 8 Two"d IT . " , ROCKS 

22 : R ^ll%X DIAMOND, DIA, , 

"13", GREEN OPAL,OPA, ,"13" ^.^ QH ark qha 30 "321 

230 DATASEAWATER,SEA,30,»32IT-S BIG AND SALTY .SHARK, SHA, 30. 321 
T'S A GREAT WHITE, AND HE'S SBEN ME. ,KELP,KEL,3B J^IH t 
T BE MILES OF THIS GARBAGE .", FISH , FIS , 21 , 29THERE S ALL KlNUo 



AROUND HERE." .„,,„ cpp MUCH " WAL 

240 DATAHALLWAY ,HAL ,3,"04IT'S SORTA DARK, I CAN J SEE MUCH. ,WAL 
t uzat PinnR FLO .GROUND, GRO, , , SAND, SAN , 5, 08THLRE MUbi be- i 
^ L ^i^SM":COtK^.Ti'lW« ORNATE, BUT NOTHING SP 

250 C DATABUILDINGS,BUI,18,»27THEY SEEM TO GO ON FOR MILES. " ,DOOR, 
260°DATA-1,,1,2,,,13,1,1,14,,1,,,1,18,,,21,1,1,22,,,24,,,26,1,1, 

29 —2 3 

270 DATAIn'a SEA GROTTO , WALLS , " S ",2,9, ,,,,1 

280 DATAIN A SMALL CHAMBER , DOOR. WALLS. ,"E ,l,,,,,21,l 

290 DATAIN A SMALL ROCK ROOM, CRACK IN WALL. HALLWAY, N ,10, 

300'DATAIN ANOTHER ROOM,HALLWAY, m S ",3,,,,,14,1 _ rD ^ 

310 DATAON THE BEACH OF A SOUTH SEA ISLAND, "ROAD. OCEAN. SAILBOA 

T.'V'ES ",6,32,11, ,19, ,1 
320 DATAIN A JUNGLE CLEARING , "ROAD , VERY OLD. TEMPLE. " , "W r 

5 7 2 

330'dATAINSIDE AN ORNATE TEMPLE , ENTRANCE . WALLS. , "W ",6,,,,, 

340 X DATAAT THE GATES OF HERCULES , OCEAN . SEA CAVE. PATH UP- CLIFF. 

, "ENW ",31,9,10, ,,,3 
350 DATAIN A SEA CAVE,,"NS ",1,8,,,,,1 

360 DATAAT THE TOP OF A CLIFF, PATH. CRACK IN CLIFF. , "D ",8,3 
370 # DATAON A SAILBOAT , SHORE ,, 5 ,,,,,, 5 

380 DATAON A DOCK IN HAWAI I , PAWNSHOP . SAIL- BOAT.,"N ",13,1 

390 ' DATAIN A PAWNSHOP, DOOR. COUNTER.," S " , , 1 3 , , 1 2 , , , 8 

400 DATAIN A PALATIAL ROOM, DOOR. BED. BALCONY.," N ",17,15,16 

410'dATAIN BED, , ,14, , , , , ,6 



54 BASIC Adventures 



Atlantean 



420 DATAON A BALCONY , BALCONY RAIL.," S ",,14,,, ,,4 

430 DATAIN AN OLD DUSTY LIBRARY , HALLWAY ., "W ",14, ,,,,5,1 

440 DATAIN A GIGANTIC UNDERWATER CITY, DOOR. SMALL PLAZA. BUILDIN 

GS.,"SNEWU ",26,28,29,27,30, ,0 
450 DATAIN A TEMPLE 100 FT. UNDERWATER , WALLS , " U " , , , 32 , , , 8 , 3 

460 DATAIN DAVY JONES LOCKER , NOTHING , , 2 , 2 , 20 , 20 , 20 , 20 , 

470 DATA" IN A SMALL ROOM, UNDERWATER «", DOOR . WALLS . , , 22 , , , , , 32 , 1 

480 DATAIN A LARGE HALL, DOOR. ALCOVE. COLONADE . , "SNE ",21,23,2 
4,,,,1 

490 DATAIN FRONT OF A LARGE WALL SCULPTURE,," NSE ",25,22,22,22 
,,,1 

500 DATAIN AN ANTE-CHAMBER , DOOR ., "WE ",22,22,,,,,! 
510 DATAIN A NARROW PASSAGE, , "SN " , 23, 26, , , , , 4 
520 DATAIN FRONT OF A DOOR, DOOR.," S " , 18 , 25 , , , , , 8 
530 DATALOST IN AN UNDERWATER CITY , BUI LDINGS ., NSEWU ,27,27,27,27 
,30, ,0 

540 DATAIN A SMALL PLAZA , STREET . BUI LDING . , "ENU ",18,29,30,,,, 
1 

550 DATAIN A BU I LDING , DOOR. WINDOW. ,, 27 , 28 ,,,,, 1 

560 DATAIN THE ATLANTIC OCEAN ,, "NSEWD " , 30 , 30 , 30 , 3 , 1 8 , , 1 

570 DATAIN THE MEDITTERANEAN OCEAN, , "NSEW " , 3 1 , 3 1 , 3 1 , 8 , , , 1 

580 DATAIN THE PACIFIC OCEAN ,, "NSEWD " , 5 , 3 2 , 3 2 , 3 2 , 1 9 , , 1 

590 FORI=0TO62 : READCOMND ( I ) :NEXT 

600 FORI=0TO39 : FORJ=0TO3 : READOBJET (I , J ) :NEXTJ 

610 NEXT I 

620 FORI=0TO11:READDOO(I,0) ,DOO(I,l) ,DOO(I,2) :NEXTI 
630 PRINT@97 , "FREE HINT - WATCH THE FLOOR/GROUND"; 
640 FORI=1TO32:FORJ=0TO9:READN(I,J) :NEXTJ:NEXTI 
650 PRINT@960,CHR$ (30) ; 

660 PRINT@975 , "PRESS ENTER TO BEGIN."; 
670 IFINKEY$=""THEN670 

690 CLS: L=5 : INPUT"DO YOU WANT TO CONTINUE A PREVIOUS GAME" ; Q : IFL 

EFT$ (Q, 1) ="Y"THENGOSUB16360 
1000 GOTO15010 

1030 PRINT@0,CHR$ (30) : PRINT : PRINT : PRINT : PRINT : PRINT : PRINT : PRINT : 

PRINT: PRINT: PRINT@0, "I AM "N(L,0)"."; 
1040 GOSUB2960 

1050 ONLGOTO1080, 11 30, 1190, 1270, 1350, 14 10, 1460, 1550, 1610, 1650, 17 
0,1730,1770,1840,1910,1980,2020,20 90,2160,2220,2230,2320,2370 
,2410,2480,2510,2530,2620,2690,2740,2760,278 

1080 GOSUB3040 

1090 GOTO3140 

1130 £OSUB2960 

1140 GOSUB3480 

1150 GOSUB4360 

1160 GOTO4420 

1190 GOSUB3480 

1200 GOSUB3500 

1210 GOSUB3530 

1220 GOSUB3630 

1230 GOSUB3670 

1240 GOTO3860 



Atlantean Odyssey 



BASIC Adventures 55 



1270 GOSUB3480 

1280 GOSUB3500 

1290 GOSUB3530 

1300 GOSUB3630 

1310 GOTO3670 

1350 GOSUB2830 

1360 GOSUB2890 

1370 GOTO3000 

1410 GOSUB3190 

1420 GOSUB3230 

1430 GOTO3000 

1460 GOSUB3480 

1470 GOSUB3500 

1480 GOSUB3530 

1490 GOSUB3690 

1500 GOSUB3630 

1510 I=15599:GOTO4400 

1550 GOSUB2890 

1560 GOTO3280 

1610 GOSUB3040:GOTO3170 

1650 GOSUB3300 

1660 GOSUB3330 

1670 GOTO3350 

1700 GOTO3560 

1730 GOSUB2960 

1740 GOTO3400 

1770 GOSUB3480 

1780 GOSUB3500 

1790 GOSUB3530 

1800 GOSUB3630 

1810 GOTO3880 

1840 GOSUB3480 

1850 GOSUB3500 

1860 GOSUB3530 

1870 GOSUB4360 

1880 GOTO4460 

1910 GOSUB3480 

1920 GOSUB3500 

1930 GOSUB3530 

1940 GOSUB3630 

1950 GOTO3760 

1980 GOSUB3530 

1990 GOTO3810 

2020 GOSUB3480 

2030 GOSUB3500 

2040 GOSUB3530 

2050 GOSUB4190 

2060 GOSUB4330 

2070 GOTO4420 

2090 I=15378:GOSUB3940 

2110 GOSUB3920 

2120 1=15411 :GOSUB3940:GOSUB3950: 1=15570 :GOSUB3940:GOSUB3960: 1=1 

560 3:GOSUB3940:GOSUB3970 
2130 I=15762:GOSUB3940:GOSUB3990:GOSUB4050: 1 = 15795 :GOSUB3940 :GOS 

UB3990:GOTO4010 



56 BASIC Adventures 



Athntean Odyssey 



2160 GOSUB3480 
2170 GOSUB3500 
2180 GOSUB3530 
2190 GOSUB3690 
2200 I=15585:GOSUB4400 
2210 GOTO4420 
2220 RETURN 
2230 REM L=21 
2250 GOSUB3480 
2260 GOSUB3500 
2270 GOSUB3530 
2280 GOSUB4360 
2290 GOTO4420 
2320 GOSUB3480 
2330 GOSUB3500 
2340 GOSUB3530 
2350 GOTO3690 
2370 RETURN 
2410 GOSUB3480 
2420 GOSUB3500 
2430 GOSUB3530 
2440 GOSUB4330 
2450 GOTO4360 
2480 GOTO3720 
2510 GOTO3590 
2530 GOSUB3920 

25 ^n?o^: 15378T0 ^^ 

GOSUB3940:GOSUB2580:NEXT:FORI=15762TO15795STEP11:GOSUB3940.GOS 
UB3990:ONRND(3)GOSUB3990,4010,4030:NEXT • <JvJbUBjy4 .GOS 

2560 GOTO4090 

2580 ONRND (4 )GOTO2590, 3950 ,3960,3970 

2590 RETURN 

2620 GOSUB3480 

2630 GOSUB3500 

2640 GOSUB3530 

2650 GOSUB4110 

2660 1=15637 :GOSUB3200: 1=15737 :GOTO3200 

2690 GOSUB3480 

2700 GOSUB3500 

2710 GOSUB3530 

2720 GO£UB4170 

2730 GOTO4330 

2740 RETURN :REML=30 

2760 RETURN :REML=31 

2780 RETURN :REML=32 

2820 REM **** SAILBOAT **** 

28 E?J2f !^ ^' 17 ? :POKE15403 ' 140;POK E^404 f 159:POKE15405,147:POK 
ozll 5 ^ 6 ' 131:POKE1546 3,176:POKE15464 f 140:POKE15465,131 
28 ^ t ,^P^ 546 8' 149:p OKE15469 / 130:POKE15470 f 164:POKE15524 r 140:POK 

28 ^?c:coo E15585 ' 131:POKE1 ^ 586 ' 13l5p OKE15587 r 131:POKE15588 139-POK 
'179:POKE15594,179:POKE15595,179:POKE15596, 179 : POKE15597, 179 



Athntean Odyssey 



BASIC Adventures 57 



2860 POKE15598,179:POKE15599,179:POKE15600 / 179:POKE15601 f 179:POK 
E15602,179:POKE15603,179:POKE15604 f 179:POKEl5605,167 

2870 RETURN 

2880 REM **** BEACH **** 

2890 Y=l: POKEI 5761, 157 : FORI=15762TO15807 

2900 X=RND(3) : IFABS ( Y-X) > 1THEN2900 

2910 Y=X:ONXGOSUB2920, 2930, 2940: NEXT: RETURN 

2920 POKEI, 131:RETURN 

2930 POKEI, 140:RETURN 

2940 POKEI, 176:RETURN 

2950 REM **** BORDER **** 

2960 FORI=16018TO1 606 3: POKEI, 176: NEXT 

2970 FORI=l 544 1TO16016STEP64: POKEI, 149: NEXT 

2980 POKE16017,181:RETURN 

2990 REM **** OLD STONE ROAD **** 

3000 POKE15767,188:POKE15771,188:POKE15828,176:POKE15829,188:POK 
E15830,143:POKE15831,131:POKE15832,176:POKE15833,188:POKE15834 

, 143:POKE15835,131 
3010 POKE15891,190:POKE15892,135:POKE15893,129:POKE15894,160:POK 

El 589 5, 190: POKE 15896,1 59 :POKE15897, 129 :POKE15890, 184 
3020 POKE15954,191:POKE15955,191:POKE15958,191:POKE15959,191:POK 

E16018, 191 :POKE16019, 191 :POKE16022, 191 :POKE16023, 191: RETURN 
3030 REM *** CAVE & GROTTO **** 

3 040 POKEI 5386, 176: POKE15387, 140: POKE15388, 131: POKE 15393, 160: POK 
E15394,152:POKE15395,188:POKE15396,131:POKE15397,131:POKE15398 
,131: POKE 15399, 131: POKE 15400, 131: POKE 1540 1, 137: POKE 15402, 140 

3050 POKE1540 3, 176: POKE 15404, 144: POKE 154 12, 130: POKE 154 13, 137: POK 
El 54 14, 164: POKE 154 15, 144: POKE 15447, 176: POKE 15448, 140: POKE 15449 
, 131: POKE15455, 184: POKEI 5456, 150: POKE 1545 7, 129: POKE15459, 133 

3 060 POKE 15468, 130: POKE 15469, 137: POKE 15470, 140: POKE 15471, 176: POK 
E 15478, 170: POKE 15479, 135: POKE 1548 0,1 37: POKE 1548 1, 164: POKE 15482 
,176: POKE 15508, 160: POKE 15509, 140: POKE 155 10, 131: POKE 155 11, 159 

3070 POKE 1551 7, 160: POKE 15518, 134: POKEI 5519, 170 : POKE 15536, 141: POK 
El 55 37, 144: POKE 15542, 170: POKEI 5547, 137: POKE 15548, 14 4: POKE 15571 
, 1 52 :POKE15572, 129 : POKE 1558 0, 152 : POKEI 558 1,129: POKEI 560 1,181 

3 080 POKE 156 12, 130: POKE 156 13, 164: POKE 15633, 160: POKE 15634, 134: POK 
El 564 3, 151: POKE 1566 5,138 :POKE15666, 148: POKE 15678, 137: POKE 15679 
, 144: POKE 15697, 159: POKE 15706, 154 

3090 POKE 1573 0,1 73: POKEI 574 3, 175: POKE 15770, 149: POKE 15441, 128: POK 
El 5505, 128: POKE 15569, 128 

3100 POKE 15794, 138 :POKE 15795, 176: POKE 15796, 176: POKE 15797, 176: POK 
E 1 5798, 176: POKEI 5799, 176 :POKE1580 7, 170: POKEI 5832, 176: POKE 15833 
, 140: POKE 158 34, 131: POKE 15864, 137 : POKE 15865, 140: POKEI 58 66, 164: P 
OKE 15867, 144: POKE 1587 1,170 

3110 POKEI 5893, 176: POKEI 5894, 140 : POKE 15895, 131: POKE 1593 1,130: POK 
E1593 2, 164 : POKE 1 593 3, 144: POKE 15935, 170 :POKE1595 5, 176: POKE 15956 
, 134: POKE 15996, 138 : POKE 15997, 164: POKE 15999, 170 : POKE 160 18, 182: P 
OKE16062,187:POKE16063,190 

3120 RETURN 

3130 REM *** END OF CAVE *** 

3140 POKE 15647, 160: POKE 15649, 160: POKE 157 11, 191: POKE 157 12, 189: POK 
E15713, 186: POKE 1571 4,180 :POKE1571 5,140 :POKE15716, 131: POKE15717 
,131:POKE15718,131:POKE15719,131:POKE15720,131:POKE15721,131 



58 BASIC Adventures 



Atlantean Odyssy 



3150 POKE15722,131:POKE15723,140:POKE15724,140:POKE15725,140:POK 

E15726,140:POKE15727,176:POKE15771,176:POKE15772,176:POKE15773 

,140:POKE15774,174:POKE1577 5,191:POKE15776,191:POKE1577 7,191:P 
OKE15778, 191 .-POKE 15792, 131 

3160 POKE15793, 131: POKEI 5794, 142: RETURN 

3170 POKE15924, 191: POKEI 5925, 191 :POKE15926, 191: POKE 15860, 160: POK 

E15861, 148: POKEI 5862, 170 :POKE15961, 184: POKE15863, 144 : RETURN 
3180 REM *** JUNGLE TREES *** 

3190 1=15447 :GOSUB3200: 1=15442 :GOSUB3200: 1=1 5505 :GOSUB3200: 1=1 54 
10 :GOSUB3200: 1=15605 :GOSUB3200: 1=15482 :GOSUB3200 

3200 POKEI, 184 :POKEI + l, 190 :POKEI+2, 191 :POKEI + 3, 173 :POKEI+4, 180 :P 
OKEI+63,174:POKEI+64,157:POKEI+65,189:POKEI+66,159:POKEI+67,15 
9:POKEI+68,187:POKEI+69,157:POKEI+128,139:POKEI+129,174:POKEI+ 
130,190:POKEI+131, 158 : POKEI+132, 135 : POKEI+194 , 191 

3210 POKEI+258, 191 :POKEI+322, 191: RETURN 

3220 REM *** TEMPLE *** 

3230 POKE 15 38 6 , 160 : FORI=15387TO15409 : POKEI ,180:NEXTI: FORI =154 7 3T 

015729STEP64: POKEI, 149 :NEXTI: 1=15451 :GOSUB3250: 1=15456 :GOSUB32 

50 : 1 = 15463 :GOSUB3250: 1 = 15468 .-GOSUB3250 

3240 POKE15451,151:POKE15515,149:POKE15579,149:POKE15643,149:POK 
E15707,181:RETURN 

3250 POKEI, 130 :POKEI+l, 191 :POKEI+2, 129 :POKEI+3, 17 l:POKEI+4, 151 :P 

OKEI+65,191:POKEI+67,170:POKEI+68,149:POKEI+129,191:POKEI+131, 

170: POKEI+132, 149 :POKEI+193, 191 :POKEI+195, 170 :POKEI+196, 149 :PO 
KEI+256,160 

3260 POKEI+257, 191: POKEI+258, 144 :POKEI+259, 186 :POKEI+260, 181: RET 
URN 

3270 REM *** SEA CAVE ENTRANCE *** 

3280 POKE15511,141:POKE15510,152:POKE15573,151:POKE15637,133:POK 

E15636,156:POKE15699,170:POKE15763,142 
3290 REM *** CLIFF & CAVE ENTRANCE *** 

3300 POKE15449,131:POKE15450,171:POKE15514,138:POKE15515,176:POK 
E15579, 131: POKEI 5580, 149 :POKE15644, 149 :POKE15708, 191 :POKE15772 
,143:POKE15512,140:POKE15513,144:POKE15577,149 

3310 POKE15641, 165 :POKE1570 6, 169 :POKE15770, 142: RETURN 

3320 REM *** CRACK *** 

3330 POKE15511,184:POKE15575,169:POKE15639,149:POKE15703,162:POK 

E15704, 132 : POKEI 5767, 142: RETURN 
3340 REM *** TOP OF CLIFF *** 

3 350 FORI = 15762T015772: POKEI, 131: NEXT :POKE15773, 181: POKE 15837, 13 

l:POKE15838, 140 :POKE15839, 176 :POKE15826, 131 :POKE15827, 140: POKE 
15828, 176 :POKE15892, 138 :POKE15893, 144 :POKE15957, 166 

3360 FORI=15904TO15910: POKEI, 179: NEXT :POKE15903, 176 :POKE1591 1,1 3 

1.-POKE15912, 140 :POKE15913, 176 :POKE15975, 131 :POKE15976, 140: POKE 
15977,176 

3370 POKE15978,131:POKE15979,131:POKE15980,141:POKE15981,140:POK 
E15982,176:POKE16041,179:POKE16042,188:POKE16047,179:POKE16048 
,190 .-POKE 16049, 188: POKE 15958, 176 .-POKE 15959, 176 

3380 POKE15960,181:POKE16024,187:POKE16030,183:POKE15966,166:POK 

E16033,187:POKE16034,183:POKE15969,148:POKE16035,181:POKE16036 
, 184:RETURN 

3390 REM *** DOCK *** 

3400 FORI = 15762TO15807: POKEI, 176 :POKEI+64, 176 :POKEI + 192, 131 .-NEXT 
: FORI=15955T015999STEP2: POKEI, 140: NEXT: FORI=15894T015929STEP7 • 
POKEI, 191 :NEXT:FORI=15838T015843: POKEI, 128 :POKEI+64, 128 :POKEI+ 



Atlantean Odyssey 



BASIC Adventures 59 



3410 PO«15965,191.POM16M9 ;^1 = ^15972 ^I'^Sl^Ia!^ 
NT@100,"* PAWNSHOP *";:F0RI»15519TOl533i- 

E15589,171:POKE15590,128:POKEl5591,128.POKbiD3^, 

, 151:POKE15598, 171:POKEl5599,128 i 71 .PORI-15612T015615 

3430 POKE15600 f 128:POKE15601,151:POKE15611,l l^RI 15612T015615 
:POKEI,128:NEXT:POKB15649 f 181:POKE15«^ 

15652, 176:POKE15653,186:POKE15657,149:POKEl5662, 170. POKhlbbbb, 
149 

3440 PRINT@306,"OPEN n ; C774QTFP64 • POKEI 1 

3450 POKE15675,170:POKE15739, 170:FORI«15518TO^ 

91:NEXT:POKE15721, 149:POKE15785,181:PO^ 

6:POKE15729,181:FORI=15730TO15738:POKEI,176:NEXT:POKE15739,186 

3460 POKE15457 f 160«POKE15458 f 134:POKE15459 ; 191:POKE^ 

E15480,137: POKE 15481 , 144 : FORI = 15395T015415 : POKEI ,176 :NEXT . RETU 
RN 

15837STEP64: POKEI, 170: POKEI+22, 170 -.NEXT: POKE15859, 186 
3490 REM *** ROOM TOP *** 

3500 POKE15446,131:POKE15447,137:POKE15448,140:POKE15449,176:POK 
E15450,144:POKE15514,130:POKE15515,131:POKE15516,140:POKE15517 

164 • 

3510 POKE15540,140:POKE15541,134:POKE15542,131:POKE15479,176:POK 
E15480,152:POKE15481,140:POKE15482,131:POKE15483,129:POKE15419 
, 160: POKEI 5420, 176 :POKE15421, 140: POKE 15422, 134: POKEI 5423, 131 

3520 REM *** ROOM BOTTOM *** 

3530 POKE16017,189:POKE16018,188:POKE16019,179:POKE16020,177:POK 
E15956,160:POKE15957,176:POKE15958,140:POKE15959,134:POKE15960 
, 131 :POKE15897, 176 :POKE15898, 152: POKE 15899, 140 :POKE15900, 131 :P 

OKE15901,129 

3540 POKE15924, 13 1-.POKE15925, 137 :POKE15926, 140: POKE 15927, 176 : POK 
E15928,144:POKE15992,130:POKE15993,131:POKE15994,140:POKE15995 

,164: POKE 15996, 176: POKE 16061, 179 :POKE16062, 185 : FORI = l 5423TO160 
63STEP64: POKEI, 191: NEXT: RETURN 
3550 REM *** SAILBOAT *** 

3 560 FORI=15763TO15807STEP3:POKEI,131:POKEI+1,151:POKEI+2,131:PO 
KEI+64, 184: POKEI+6 5, 189 : POKEI+66, 176 : NEXT: FORI=l 538 2T015958STE 
P64 : POKEI, 19 1: NEXT : FORI = l 5703TO1 57 34: POKEI, 140: NEXT: POKE 15732, 
142 

3570 POKE 15668, 144: POKE 15667, 137: POKE 15602, 164: POKE 15601, 130: POK 
E 1 5536, 144 : POKE 1 55 3 5, 137: POKE 15470, 164 :POKE15469, 130: POKE 15404 
, 144: POKE 1540 3, 137: RETURN 

3580 REM*** DOOR *** 

3590 POKE 15454, 151: FORI = 15455T015469 : POKEI, 131: NEXT: POKE 15470, 17 
l:FORI = 15518T015966STEP64: POKEI, 149 :POKEI + 16, 170: NEXT: POKE 1564 
2, 191: POKE 1564 3, 179: POKEI 5644, 191: POKE 160 30, 181: POKE 16046, 186 

3600 IFDOO(9,l)=lTHEN POKE15712, 183 

3610 RETURN 

3620 REM *** ROOM DOOR *** 

3 630 POKE 15653, 151: POKE 15654, 131: POKE 15655, 131: POKE 15656, 131: POK 
E15657,131:POKE15658 f 171: POKE1571 7,149 :POKE15781, 149: POKE15845 
,181: POKE 15722, 170: POKE 15786, 170: POKE 158 50, 186 



60 BASIC Adventures 



Atlantean Odp 



3650 RETURN 

3660 REM*** HALLWAY *** 

3670 POKE 15845, 189: POKE 15846, 188: POKE 15847, 179: POKE 15848, 177: POK 

El 578 4, 160: POKEI 578 5, 176: POKE 1578 6, 174: RETURN 
3680 REM *** COLUMNS *** 

3690 FORI=1544 3T015955STEP64: POKEI, 191 : POKE 1+3 , 191 : POKE 1+38 , 191: 
POKEI+4 1,191: NEXT : POKE 15958, 14 3: POKEI 5993, 131 : FORI=1551 3T01 589 
7STEP64: POKEI, 191: POKE 1+29, 191: NEXT: POKE 15926, 143 

3700 FORI=15579T015835STEP64: POKEI, 170 :P0KEI+1, 149: NEXT :POKE1551 
5, 171: POKE 155 16, 156: POKE 1548 1,190 .-POKE 15899, 14 2: RETURN 

3710 REM *** NARROW PASSAGEWAY *** 

3720 FORI =1 5398T0 1 54 22 : POKE I, 140: POKE 1+640, 176: NEXT: FORI =1546 1T0 
1 6037STEP64 : POKE 1,1 91 :POKEI+26, 191: NEXT: POKE 15397, 188: POKE 1542 
3, 188: POKE 160 38, 179: POKE 16063, 191: POKE 16062, 179 

3730 F0RI=1 5462T015663STEP67: POKEI, 1 31 :P0KEI+1, 140 :P0KEI+2, 176: P 
OKEI+332,131:POKEI+333,140:POKEI+334,176:NEXT:FORI=15484TO1566 
7STEP61:POKEI,176:POKEI+1,140:POKEI+2,131:POKEI+308,176:POKEI+ 
309, 140: POKEI+310, 131: NEXT 

3740 POKE 15666, 176: POKE 15729, 149: POKE 157 3 1,170: POKE 1579 3, 141: POK 
El 5794, 140: POKE 1579 5, 142: RETURN 

3750 REM *** CAOPY BED *** 

3760 FORI=15454T015474:POKEI,176:POKEI+128, 130 : POKEI+384 , 179 :NEX 
T:POKE15518, 182 : POKE 15538, 178 : POKEI 5539, 180 : POKE 1583 8, 18 2: POKE 
15859, 190: FORI=15507TO1 55 14: POKEI, 131: POKE 1+384, 140: NEXT 

3770 F0RI = 1 554 3T01 5550: POKEI, 131: POKEI+38 4, 140: NEXT: POKE 15897, 18 
8 : POKE 15898, 156: POKE 15927, 188: POKE 159 28, 156: F0RI = 1 5506TO1 5890S 
TEP64: POKE I, 170: NEXT: POKE 1544 1,181: POKE 154 4 2, 144: POKE 1588 9, 181 
:POKE15890,154 

3780 POKEI 5454, 140: POKE 15453, 137 : POKE 1545 2, 131: POKE 15474, 152: POK 

E15475, 140: POKE 15476, 131: POKE 15477, 129: POKE 154 13, 160: POKE 154 14 

, 176: POKE 1541 5, 140: POKEI 5416, 134: POKE 1541 7, 131 
3790 POKE 1537 7, 151: POKE 15378, 131: POKE 1537 9, 14 0: POKE 1538 0, 164: POK 

El 5381, 176 : POKE 1538 3, 130: POKEI 5384, 131: POKE 15385, 140: POKEI 5386 

,164: POKE 1538 7, 176: RETURN 
3800 REM *** BALCONY *** 

3810 F0RI=1 5775T015793STEP4: POKEI, 135: POKE 1+1,187 :P0KEI+2, 147: PO 
KEI+3, 1 75 :POKEI+64, 180: POKEI+6 5, 187: POKEI+6 6, 177: POKEI+6 7, 190: 
NEXT : POKE 15774, 191: POKE 15838, 191: POKE 15795, 191: POKE 158 59, 191 

3820 POKE 1577 3, 174: POKEI 577 2, 140: POKE 1577 1,176: POKE 1577 0,160: POK 
El 5796, 140: POKE 15797, 164: POKE 15798, 176: POKE 158 30, 176: POKE 158 31 
, 1 52 : POKE 1 583 2, 1 40 : POKE 1 5833, 131: POKE 158 3 4, 129: POKE 1586 3,1 31 :P 
OKE15837,170 

3830 POKEI 5864, 137: POKE 15865, 140: POKE 15866, 176: POKE 15867, 144: POK 
E 1588 9, 181: POKE 1589 0,176: POKE 1589 1,140: POKE 15892, 134: POKE 15893 
, 13 1: POKE 1593 1,130: POKE 15932, 131: POKE 15933,1 40 : POKE 15934, 164 :P 
OKE15935,191 

3840 RETURN 

3850 REM *** CRACK IN WALL OF ^ROOM *** 

3860 POKE 15832, 153 : POKE15895, 170 : POKEI 5638 , 152 : POKEI 570 2, 170 : POK 
E15766, 166: POKE 158 30, 165: POKE 15894, 153: POKE 15958, 186: POKE 15768 
,153: POKE 1570 4, 155: POKE 15640, 164: POKE 15639, 137: RETURN 

3870 REM *** COUNTER *** 

3880 POKEI 5770, 160: POKE 15771, 176 : F0RI = 1 5772T01 5791: POKEI, 140: NEX 
T: POKE157 7 3, 142: POKEI 5792, 176 :FORI=15834T015863: POKEI , 131: POKE 
1+64, 176: NEXT: POKE 158 33, 151: POKE 15857, 171: POKE 15897, 181 



Atlantean Odyssey 



BASIC Adventures 61 



3890 POKE15921,186:POKE15864,149:POKE15786, 142:P0KE15781, 141:P0K 
E15718,160: POKE 1 5928 , 149 : PRINT@237 , "TRADE" ; : PRINT@299 , TREASUR 
E"; :PRINT@365,"HERE."; 

3900 RETURN 

3910 REM *** CITY SCAPE 

3920 FORI=l 5954T015999 : POKE I ,131 : NEXT: RETURN 
3930 REM *** BASIC BLOCK *** 

3940 FORI l=ITOI+9: POKEI 1, 131: NEXT: POKEI, 151: POKEI + 10, 171: POKEI+6 
4, 149: POKEI+74, 170: POKEI + 128, 149: POKEI+138, 170: POKEI+6 6,183 : FO 
RI l=I+67TOI+7 1 : POKEI 1,179: NEXT: POKEI+72, 187: RETURN 

3950 POKEI+65, 183 :POKEI+67, 187: POKEI+68, 183 : POKEI+70, 187 : POKEI + 7 
1, 18 3: POKEI+73, 187: RETURN 

3960 POKEI+68, 187: POKEI+69, 128: POKEI+70 ,183: RETURN 

3970 POKEI+65, 183 :POKEI+66, 187: POKEI+68, 183: POKEI+70, 187: POKEI+7 
2, 18 3 :POKEI+73, 187: RETURN 

3980 REM *** STREET WINDOW 

3 990 FORI l=I+66TOI+72: POKEI 1,131: POKEI 1+64, 140: NEXT: POKEI+65, 151 

:POKEI+73,171:POKEI+129,141:POKEI+137,142:RETURN 
4000 REM *** DOOR ON LEFT **** 

4 010 POKEI+67, 171: POKEI+68, 128: POKE 1+69, 151 :POKEI + l 29, 149: POKEI + 

13 0,1 28: POKEI + 1 3 1,170: POKEI + 1 32, 128: POKEI + 1 3 3, 141: RETURN 
4020 REM *** DOOR ON RIGHT *** 

4 30 POKEI+69, 171: POKEI+70, 128: POKEI+7 1,151 :POKEI+l 33, 142: POKEI + 

134, 128: POKEI + 1 3 5,149 :POKEI + l 36, 128: POKEI + 1 37, 170: RETURN 
4040 REM *** CENTER DOOR *** 

4 050 POKEI+68, 171: POKEI + 129, 149: POKEI + 1 30, 128: POKEI + 1 31, 128: POKE 

1 + 132, 170: FORI l = I+69TOI+73: POKEI 1,128: POKEI 1+64, 128: NEXT 
4060 REM *** PLAZA *** 

4 070 FORI = l 5773T01578 3: POKE 1, 142: NEXT :FORI = 15784T01 5794: POKEI, 14 
1: NEXT: POKE 1578 2, 160: POKE 1578 5, 144: POKE 1578 1,174: POKE 1578 6, 157 
:FORI=l 58 45T01 5849STEP2 : POKEI, 170: POKEI+1, 149 :POKEI+64, 170 : POK 
EI+65,149:NEXT 

4080 REM *** EDGE OF BLDG 

4 90 POKE 15422, 151: POKE 15423, 131: POKEI 5487, 183: FORI = 15486T01 5934 
STEP64: POKE 1, 149: NEXT: POKEI 561 4, 151: POKEI 561 5, 131: POKE 15679, 17 
0: POKE 15806, 151: POKEI 5807, 131 : POKE 15871, 151 : POKEI 5935, 149 :RETU 
RN 

4100 REM *** IN A PLAZA *** 

4110 POKE 15383, 148: POKEI 5384, 160: POKE 15389, 170: POKEI 5448, 142: POK 

E 1 5450, 149 :POKE15451, 168: POKE 15453, 186 :POKE1541 1,170: POKEI 54 16 

,160:POKE15418,148:POKE15419,170:POKE15421,141:POKE15475,170:P 
OKE15476,144 

4120 POKE15477,168:POKE15479,181:POKE15480,154:POKE15540,14 3:POK 
E1551 6, 142 :POKE15517, 175 :FORI = 15518T015538: POKEI, 184: NEXT: POKE 
15539, 186: POKE 15540, 143 

4130 REM *** TABLE *** 

4140 POKE15770, 160 :POKE15771, 176 :FORI=15772T015777: POKEI, 188 -NEX 
T:POKE15773,190:POKE15778,156:POKE15779,188:POKE15843 191 

4150 POKEI 58 32 , 140 : FORI=15833T015838 : POKEI , 14 3 : NEXT : POKE 158 39 13 
5:POKE1584 0,131:POKE15838,191:POKE15902,191 ' 

4160 REM*** WINDOW *** 

4170 FORI=15658T015665: POKEI, 131: POKEI+128, 131: NEXT -POKEI 5658 15 

1: POKEI 5665, 171 :POKE15722, 149 :POKE15729, 170: RETURN ' 
4180 REM *** BOOKS 



62 BASIC Adventures 



Atlantean Odyssey 



4190 FORI=l 558 2T01 560 2: POKEI, 176: POKEI+64, 176: POKEI+1 28, 176: POKE 

1 + 192, 176 :IFBK>1THENP0KEI, 186 
4200 IFB2OlTHENP0KEI + 64,181 
4210 IFB3OlTHENP0KEI + 128,186 
4220 IFB4O1THENP0KEI + 192, 181 
4230 IFB5O1THENP0KEI + 256, 186 
4240 NEXT 
4250 1=15582 

4260 POKE15603, 186 :POKE15667, 186: POKE 15731, 186: POKE 15795, 186: POK 

El 5859, 186 : IFB1O1THENP0KEI, 191: POKEI + 1 0,191: POKEI + 1 2, 191 
4 270 IFB2O1THENPOKEI+75,191:POKEI+70,191:POKEI+85,191 
4280 IFB3O1THENP0KEI + 128, 191: POKEI + 1 35, 191 :POKEI + 140, 191 
4290 IFB4<> 1THENPOKE 1+193, 19 l:POKEI+203, 191: POKEI+204, 191: POKEI+ 

213,191 

4 300 IFB5O1THENPOKEI+257,191:POKEI+261,191:POKEI+270,191:POKEI+ 

275,191 
4310 RETURN 

4320 REM *** LEFT DOOR *** 

4 330 POKEI 5507, 151: POKE 15508, 137: POKEI 5509, 140: POKE 15510, 176: POK 
E15511,144:FORI=15571TO15891STEP64:POKEI,149:POKEI+5,170:NEXT: 
POKEI, 149: POKE 15700, 148: GOSUB4800: IFD1=1RETURN 

4340 FORI =1557 2T015575: POKEI, 131 :POKEI+32 0, 176: NEXT : POKE 1557 1,1 5 
l:POKE15576, 171 :POKE15700, 128: POKE 15891, 181: POKEI 5896, 186 :RETU 

RN 

4350 REM *** RIGHT DOOR *** 

4 360 POKE15545, 160 :POKE15546, 176: POKE 15547, 140: POKE 15548, 134: POK 
El 5549, 17 1:FORI=15607TO15927STEP64: POKE I, 170: POKEI+6, 170: NEXT: 
POKE15608, 131: POKE15609, 129: POKE15927, 186: POKE 15997, 170: POKE15 
740,168 

4370 GOSUB4800:IFD1=1RETURN 

4 380 FORI = 15608TO1 5612: POKEI, 131 :POKEI + 320, 176: NEXT: POKE 15740, 12 

8 : POKE 1561 3, 171 : POKE 15933, 186: RETURN . 
4390 REM*** WALL CARVING *** 

4 400 POKEI, 176: POKEI+1, 176 :POKEI+63, 160: POKEI+64, 187: POKEI+65, 18 
3 : POKEI+6 6, 144 : POKEI + 1 2 5,1 30 :POKEI + 126, 14 1-.POKEI + 127, 135: POKEI 
+128, 189: POKEI+129, 191: POKEI+1 30, 149: POKEI+192, 159: POKEI+193,1 
59 :POKEI+256, 181: POKEI+257, 181: RETURN 

4410 REM *** HEXAGON ON FLOOR *** 

4420 FORI=15909TO15916: POKEI, 176: NEXT : POKEI 5970, 176 : POKE 1597 1,1 4 

:POKE15972, 131 :POKE15981, 131 :POKE15982, 140: POKE 15983, 176 -.POKE 
16032, 188: POKE 1603 3, 179: POKEI 604 8, 179: POKE 1604 9, 188: RETURN 

4430 REM *** SMALL DOORS *** 

4440 POKE15788, 151: FORI=15789T015793: POKEI, 131: NEXT: POKE15794, 17 

l:POKE15852, 181: POKE 15858, 186 
4450 REM *** BED & BALCONY *** 

4 460 FORI=15580TO1 5595: POKE I, 176: POKEI+6 1,176: POKEI+1 25, 130: POKE 

1 + 192, 176: NEXT -.POKE 15579, 160: POKE 1559 6, 176 : POKE 15640 , 160 : POKEI 
564 1,184: POKE 1564 2, 18 2: POKE 1564 3, 177: POKE 15655, 156: POKEI 5656, 1 
34 

4470 POKEI 5657, 177: POKE 15658, 152 -.POKE 15659, 140: POKEI 5660, 131: POK 
E15661,171:POKE15709,170:POKE15719,151:POKE15720,131:POKE15725 
, 170 :FORI = 15704TO15896STEP64: POKEI, 170: NEXT -.POKE 15769, 176: POKE 
15770,152 



Atlantean Odyssey 



BASIC Adventures 63 



4480 POKE15771, 140 : POKE15772 , 131 : POKE15773 , 171 : P0KE15783 , 18 1 : POK 
El 5789, 186: POKE15833 f 176: POKE15834, 184: POKE15835, 188: POKE 15836 
, 179:POKE15837, 177 : POKE15847 , 181 : POKE15849 , 140 : POKE 15850 , 134 :P 
OKE15853, 186 

4490 POKE15851, 131: POKE15911, 181: POKE15912, 176: POKE 15913 ,140: POK 
E15914 f 134: POKE1591 5,131 :P0KE15788, 176: POKE1558 1,186 

4500 FORI=15663TO15791STEP64:P0KEI,151:P0KEI+l,131:POKEI+2, 131 :P 
OKEI + 3, 171 :NEXT:POKE15855, 183: POKE15856, 179: POKE15857, 179: POKE 
15858,187 

4510 RETURN 

4520 IFPOS(0)+LEN (OB JET (1,0) ) >12ANDJ<704THENJ=J+64 : PRINT@ J , OBJET 

(1,0) ;". "; : : RETURN 
4530 PRINTOBJET(I,0) ;". " ; : RETURN 
4550 N1=N(L,1) 
4560 X1=LEN(N1) 
4570 FORX2=12TOXl 

4 580 IFMID$ (N1,X2, 1) <>CHR$ ( 32 ) ANDX20X1THENNEXTX2 

4590 M=LEFT$ (Nl,X2) 

4600 PRINTM; : J=J+64 

4610 M=RIGHT$ (N1,X1-X2) 

4620 PRINT@J,M; : J=J+64 

4630 RETURN 

4700 IFDOO (0, 2 )=1THENI = 1 554 1:GOSUB4400: 1=0 :POKE15666, 146: RETURN 
4710 POKE15539, 1 56 : POKE1 5540, 140: POKE 15541, 140 :POKEl 554 2, 140: POK 
E 1554 3, 172 : POKE 1560 3, 149 :POKEl 5607, 170: POKE 15667, 149: POKE 15671 
,170:POKE15731,149:POKE15735,170:POKE15795,181:POKE15799,186:R 
ETURN 

4 800 D1=0:FORI=0TO11: IFDOO(I,0) OLTHEN4820 

4810 IFDOO(I,2)=lTHENDl=l 

4820 NEXT : RETURN 

5000 IFB1=0THENB1=1 :RETURN 

5010 IFB2=0THENB2=1 : RETURN 

5020 IFB3=0THENB3=1 : RETURN 

5030 IFB4=0THENB4=1 : RETURN 

5040 IFB5=0THENB5=1 : RETURN 

15000 REM 

15010 IFL2=1THENW=W-1: IFW<0THENL2=0 

15020 IFL>18THENF=1:IFL2=1ANDW<10PRINT"THE LAMP 1 S BATTERIES ARE 
ALMOST DEAD, " : IFW<4THENPRINT"HEY , I DON'T NEED A LIGHT THE WA 
TER IS PHOSPHORESCENT!" ' 

15030 Z1=Z1+1 

15040 IF0BJET(13,2)="-3"THENA1=A1-1 
15050 IFL>4THEN15090 

15060 IFL2=1ANDOBJET(5,2)="-1"THEN15090 
15070 PRINT W IT , S TOO DARK TO SEE ! " 
15080 GOTO15420 
15090 IFL>17ANDL<31THEN15130 

15100 IFT<1THENOBJET(24,2)= MM :GOTO15170 
15110 T=T-1 
15120 GOTO15170 

15130 IFOBJET(24,2)="-4"THENGOTO15170 

15140 IFOBJET(13,2)="-3"ANDA1>0THENGOTO15170 

15150 PRINT@960,"I'M UNDERWATER! I CAN'T BREATH R i " 

15160 L=20 



64 BASIC Adventures A(/anfean odyssey 



15170 GOSUB1030 

15171 PRINT@64,"I CAN RECOGNIZE:"; 

15172 PRINT@128,""; 

15180 J=128:FORI=0TO23: IFVAL (OBJET ( I ,2) ) =LTHENGOSUB4520 

15190 NEXTI 

15200 FORI=28T031: IFVAL (OBJECT (I, 2) ) <=LANDVAL (OBJECT ( I , 3) ) >=LTHE 

NGOSUB4520 

15210 NEXTI 

15220 FORI=36T037 : IFVAL (OBJET (I , 2) ) =LORVAL (OBJET (I , 3) ) =LTHENGOSU 

B4520 

15230 NEXTI 

15240 FORI=0TO11 

15250 IFDOO(I,0)OLTHEN15280 

15255 IFL=1THENGOSUB4700 

15260 IFDOO(I,2)=lTHENPRINT"CLOSED ";:GOTO15280 

15270 PRINT"OPEN "; 

15280 NEXT 

1528 5 IFPOS (0)+LEN (N (L, 1) ) > 1 5THENJ=J+64 : PRINTS J ,"" ; 

15290 IFLEN (N (L , 1 ) ) >15ANDJ<704THENGOSUB4550 :GOTO1530 

15295 PRINTN(L,1) ; 

15300 I FN (L, 2) =" "THEN 154 2 

15305 J=J+64: IFJ<704 THEN PRINTS J , " " ; 

15310 PRINT"OBVIOUS EXITS -"; 

15315 J=J+64 : IFJ<704THENPRINT@ J , " " ; 

15320 X1=0:FOR1=1TO6 

15330 M=MID$(N(L,2) ,1,1) 

15340 I FM="N "THEN PRINT "NOR ";:X1=X1+1 

15350 IFM="S"THENPRINT"SOU ";:X1=X1+1 

15360 IFM=" E "THEN PRINT "E AS ";:X1=X1+1 

15370 IFM="W"THENPRINT"WES ";:X1=X1+1 

15380 IFM="U"THENPRINT"UP ";:X1=X1+1 

15390 IFM="D"THENPRINT"DOW ";:X1=X1+1 

15395 IFXl>3THENJ=J+64 : IFJ<704THENPRINT@J , " " ; 

15400 NEXT 

15420 PRINT@960 , "WHAT DO I DO NOW" ; 

15430 INPUTQ 

15440 IFAK15AND OBJET (13, 2) ="-3"THENIFRND ( 3 ) <3THENPRINT" I 'M RUN 

NING LOW ON AIR" 

15450 IFQO"SET SAIL"ORLO11THEN15500 

15460 IFN(11,3)="5"TEENN(11,3)="12":GOTO15480 

15470 N(ll,3)="5" 

15480 PRINT" AFTER THREE FUN DAYS AT SEA..." 

15490 GOTO15000 

15500 IFQO "GET UP"ORLO15THEN15520 

15510 L=14:GOTO19560 

15520 X1=LEN(Q) 

15530 IFX1>2THEN15570 

15540 IFX1=1THEN16040 

15550 PRINT"WHAT?" 

15560 GOTO15000 

15570. FORX2 = 3TOXl 

15580 M1=MID$ (Q,X2,1) 

15590 IFM1=CHR$ (32) THEN15620 

15600 NEXTX2 

15610 X2=X1 



Atlantean Odyssey 



BASIC Adventures 65 



15620 M1=LEFT$ (Q, 3) 

15630 IFX2<>X1ANDX2+3>X1THEN 1952 

15640 REM *** FIND COMMAND *** 

15650 FORI=0TO62 

15660 IFM1=COMND(I)THEN15710 

15670 NEXTI 

15680 IFX2=X1THEN19520 
15690 GOTO19550 

15700 REM *** WAS IT A DIRECTION? *** 

15710 IFK7THENJ = I:GOTO15960 

15720 REM *** ONE WORD COMMANDS *** 

15730 IFK17THEN16200 

15740 M1=MID$ (Q,X2+1, 3) 

15750 IFK23THEN15820 

15760 REM *** FIND OBJECT MATCH *** 

15770 FORJ=0TO39 

15780 IFMl=OBJET(J,l)THEN17270 

15790 NEXT 

15800 J=0 

15810 REM *** EXITS POSSIBLE *** 
15820 I FN (L, 1 ) =" "THEN 15 960 
15830 Z=l 
15840 A=Z 

15850 X1=LEN(N(L,1)) 
15860 FORX2=5TOXl 

15870 IFMID$ (N (L, 1) , X2 , 1 ) <>CHR$ ( 46) ANDX20X1THEN 15920 

15880 M=MID$ (N (L, 1) ,Z, 3) 

15890 IFM=M1THENX1=A:GOTO16090 

15900 Z=X2+2 

15910 A=A+1 

15920 NEXTX2 

15930 IFI>26THEN17900 

15940 IFI>22THEN19550 

15950 REM *** COMPASS DIRECTIONS - THREE LETTER *** 

15960 F0RI=1T06 

15970 IFM1=COMND(I)THEN16040 

15980 NEXT 

15990 IFJO0THEN19540 

16000 IFM1OCOMND(0)THEN19530 

16010 IFZK30PRINT"IT , S TOO SOON TO BE ASKING FOR HINTS ! 1 " : GOTOl 

5000 
16020 GOTO19830 

16030 REM *** COMPASS DIRECTIONS - ONE LETTER *** 

16040 F0RX1=1T06 

16050 M=MID$ (N (L,2) ,X1,1) 

16060 IFM=QORM=LEFT$ (Ml , 1 ) THEN16090 

16070 NEXT 

16080 GOTO19540 

16090 L1=VAL(N (L,Xl+2) ) 

16100 IFI>25THENA=0:GOTO17900 

16110 IFI>22THEN19530 

16120 IFMO"DOO"THEN16170 

16130 FORIl=0TOll:IFDOO(Il f 0) OLTHEN16160 
16140 IFDOO(I1,1)=1THEN19760 



66 BASIC Adventures 



Athntean Odyssey 



16150 IFDOO(I1,2)=1THEN19770 
16160 NEXTI1 

16170 IFL1O0THENL=L1:GOTO19560 
16180 GOTO19550 

16190 REM *** ONE WORD COMMANDS *** 

16200 ONI-7GOSUB16310, 16430, 16620,16740 , 16950, 16980,17090, 17180 , 
17210 

16210 IFIO7THEN15000 
16220 REM *** QUIT *** 
16230 PRINT"OK" 
16240 GOSUB16440 

16250 PRINT"DO YOU WANT TO PLAY ANOTHER GAME"; 
16260 INPUTQ 

16270 IFLEFT$ (Q, 1) ="Y"THENRUN 
16280 IFLEFT$ (Q , 1 )<> "N "THEN 1625 
16290 NEW 

16300 REM *** SAVE GAME *** 
16310 INPUT"IS THE TAPE PLAYER READY " ; Q 
16320 IFQO"Y"THENPRINT"NO SAVE PERFORMED .": RETURN 
16330 PRINT#-1,A1,B,D,F,H1,IM,IN,L,L2,L3,S,S1,T,T1,W,Z1 
16340 FORI=0TO21:PRINT#-1,OBJET(I,0) ,OBJET(I,l) ,OBJET(I,2) ,OBJET 
(I,3):NEXT 

16350 FORI=0TO11:PRINT#-1,DOO(I,0) ,DOO(I,l) ,DOO(I,2) : NEXT : RETURN 

16360 INPUT"PRESS ENTER WHEN THE TAPE RECORDER IS READY. READY"; 
Q 

16370 IFLEFT$ (Q, 1 ) <> " Y "THENRETURN 

16380 INPUT#-1,A1,B,D,F,H1,IM,IN,L,L2,L3,S,S1,T,T1,W,Z1 

16390 FORI=0TO21:INPUT#-1,OBJET(I,0) ,OBJET(I,l) ,OBJET(I,2) ,CHR$( 

34) ;OBJET(I,3) ; CHR$ ( 34 ) : NEXT 
16400 FORI=0TO11:INPUT#-1,DOO(I,0) ,DOO(I,l) ,DOO(I,2) : NEXT 
16410 RETURN 

16420 REM *** SCORING *** 
16430 IFLO13THEN19570 
16440 Z=0:FORI= 16T021 
16450 J=VAL(OBJET(I,2) ) 
16460 IFJ=L0RJ=-1TBENZ=Z+1 
16470 NEXT 

16480 PRINT"I HAVE" Z "TREASURES , TOTALING"Z/6*100"%" 
16490 IFZ=6THEN16510 
16500 GOTO19580 

16510 PRINT: IFS>0THENPRINT"SINCE YOU HAD TO USE THE SAVE ROUTINE 
" :GOTO19800 

16520 I FH1>0THEN PRINT" SINCE YOU HAD TO USE THE HINTS ...": GOT0198 
00 

16530 IFD>0THENPRINT" IF YOU HADN'T KILLED YOUR ANDROID, YOU WOUL 

D HAVE RATED. . ." 
16540 IFZK95THENPRINT" A PROFESSIONAL" 
16550 IFZ1>94ANDZK120THENPRINT"AN EXPERT" 
16560 IFZ1>119ANDZK200THENPRINT"A VERY GOOD" 
16570 IFZ1>199ANDZK300THEN19800 
16580 IFZ1>299THENPRINT"A NOVICE" 
16590 PRINT" ADVENTURER , FINISHED IN" Z 1 "MOVES . " 
16600 GOTO16250 



Athntean Odyssey 



BASIC Adventures 67 



16610 REM *** HELP ** 

16620 J=VAL(N (L,9) ) t£ ^ a * ic7ia i cn 

16630 ONJGOTO16640, 16650, 16660 ,16670, 16680, 16690 ,16700, 16710 ,167 

20 

16640 PRINT n TRY EXAMINING THINGS • " : RETURN 

16650 PRINT"TRY DIGGING . ": RETURN nnpfP „ ..,„... 

16660 PRINT-TRY PUSHING ONE OF THE MEDALLION'S JEWELS. : RL 1 UKN 

16670 PRINT"DON'T STOP HERE . n : RETURN 

16680 PRINT-TRY 'SET SAI L '": RETURN 

16690 PRINT-WELL, GET UP, LAZ Y !": RETURN 

16700 PRINT-DO YOU HAVE THE CYLINDER? ": RETURN 

16710 PRINT-TRY 'TRADE TANKS '. w : RETURN 

16720 PRINT-PUSH THE MEDALLION'S DIAMOND. n : RETURN 

16730 REM *** INVENTORY *** 

16740 PRINT-I HAVE :"; 

16750 IFOBJET(13,2)="-3"THENPRINT"THE SCUBA GEAR, WHICH I'M WEAR 
ING." 

16760 IFIM>0THEN16780 
16770 PRINT-NOTHING! " :RETURN 
16780 FORI=0TO21 
16790 IFI=1THEN16830 

16800 IFVAL(OBJET(I,2) ) O-ITHEN 16830 

16810 IF(L2=1ANDI=5)OR(L3=1ANDI=6ANDF=0)THENPRINT M LIT "; 
16820 PRINTOBJET(I,0) ". "; 
16830 NEXT 

16840 IFVAL (OB JET (1,2) ) O-ITHENPRINT : RETURN 

16850 PRINT : PRINT "THE - ; OBJET ( 1 , ) " , WHICH CONTAINS"; 

16860 IFIN=0THENPRINT" : NOTHING I " : RETURN 

16870 PRINT" : "; 

16880 FORI=0TO21 

16890 IFI=1THEN16910 

16900 IFVAL(OBJET(I,2) ) =-2THENPRINTOBJET ( 1 , ) ". 
16910 NEXT 
16920 PRINT 
16930 RETURN 

16940 REM *** LISTEN *** 

16950 PRINT"I CAN HEAR NOTHING UNUSUAL." 

16960 RETURN 

16970 REM *** CLIMB *** 

16980 IFL=8ORL=10THENIFRND (10) <2THEN1703 
16990 IFL=8THENL=10 : RETURN 
17000 IFL=10THENL=8 : RETURN 
17010 IFLO16THEN17060 
17020 GOSUB19590 

17030 PRINT"OH NO... I'M SLIPPING"; 

17040 FORI=1TO100:NEXT 

17050 GOTO17190 

17060 PRINT"CLIMB WHAT?" 

17070 RETURN 

17080 REM *** DIG *** 

17090 IFL>1 1THENPRINT" ARE YOU KIDDING? I CAN'T DO THAT HERE . " : RE 
TURN 

17100 I FL06THEN PRINT "OUCH, HURT MY HANDS ON ROCKS !" :GOTO17150 
17110 IFVAL (OBJET (18, 2) ) O-6THEN17150 



68 BASIC Adventures 



Atlantean Odyssey 



17120 PRINT" BOY , IS THE GROUND SOFT HERE. 
HEY! I FOUND SOMETHING!" 
17130 OBJET(18,2)="6" 
17140 RETURN 

17150 PRINT"THERE ' S NOTHING HERE." 

17160 RETURN 

17170 REM *** JUMP *** 

17180 IFLO10ANDLO16THEN19590 

17190 PRINT"I FELL 150 FEET TO THE ROCKS BELOW, 

I'M DEAD." 

17200 GOTO16250 

17210 REM *** SWIM *** 

17220 IFL<18THEN19600 

17230 IFX1=X2THEN19610 

17240 GOTO15770 

17250 GOTO19610 

17260 REM *** EXAMINE *** 

17270 IFI>26THEN17900 

17280 IFJ=0THEN15550 

17290 Xl=VAL(OBJET(J,3) ) 

17300 X2=VAL(OBJET(J,2) ) 

17310 IFJ>23THEN17660 

17320 IFJ=15AND(OBJET(13,2)="-1"OROBJET(13,2)="-3")THEN17340 

17330 IFLOX2ANDX20-1ANDX20-2THEN 19640 

17340 IFLEN(OBJET(J,3) )=2THEN 17360 

17350 PRINTRIGHT$ (OBJET(J,3) , LEN (OBJET (J , 3) )-2) 

17360 IFX1=0THEN15000 

17370 ONX1GOSUB17390, 17410, 17420, 17440, 17460, 17470, 17490, 17510,1 

7530,17560,17570,17590,17610,17620,17630 
17380 GOTO15000 

17390 IFIN>0THENPRINT" AND THERE'S SOMETHING IN IT . " : RETURN 
17400 RETURN 
17410 GOTO19630 

17420 IFVAL (OBJET (21 , 2) ) =-14THENPRINT" AND THEY'RE HELD BACK BY A 

STRING OF "OBJET(21,0) " . " : OBJET ( 2 1 , 2 ) = " 1 4 " 
17430 RETURN 

17440 IFI=26THENPRINT" AND IT SAYS 'BRING TREASURES HERE. SAY < 

SCORE>. ' 
17450 RETURN 

17460 PRINT" AN ODD BATTERY INDICATOR, IT SHOWS 'GOOD FOR"W" MOVE 
S ' " • RET URN 

17470 IFF s= 0THENPRINT" AND THE BATTERY IS GOOD .": RETURN 
17480 PRINT"BUT THE WATER RUSTED IT UP.":RETURN 
17490 IFB1=1THENPRINT"BUT THEY'RE CRUMBLING AWAY." 
17500 RETURN 

17510 IFVAL (OBJET ( 19 , 2) ) =-23THENPRINT"THERE ' S SOMETHING UNDER IT 

!":OBJET(19,2)="23" 
17520 RETURN 

17530 IFS1=0THENPRINT" BUT THERE AREN'T ANY TRIDENTS LEFT • " : RETUR 
N 

17540 PRINT"IT'S LOADED WITH"S 1 ;: IFS l=lTflENPRINT" TRIDENT .": RETU 
RN 

17550 PRINT" TRIDENTS.": RETURN 
17560 PRINTA1" MOVES .": RETURN 



Atlantean Odyssey 



BASIC Adventures 69 



17570 IFVAL (OBJET (17,2) ) =-4THENPRI NT "THERE ' S SOMETHING IN IT.":0 

BJET(17, 2)="4" 
17580 RETURN 

17590 IFVAL(OBJET(20, 2) ) =-28THENPRINT" I SEE SOMETHING .": OBJET ( 20 

, 2)="28" 
17600 RETURN 
17610 GOTO19650 

17620 PRINT"IT , S BROKEN INTO PIECES .": RETURN 

17630 IFVAL (OBJET (5,2) ) =-9THENPRINT"THERE ' S SOMETHING HERE . " : OBJ 

ET(5,2)="9" 
17640 RETURN 

17650 REM *** MULTIPLE LOCATION ITEMS *** 
17660 IFJ>27THEN17690 

17670 IFVAL (OBJET (18, 2) ) O-1THEN19620 

17680 GOTO19530 

17690 IFJ>32THEN17740 

17700 IFL>X1ORL<X2THEN19640 

17710 X1=L 

17720 GOSUB17850 

17730 GOTO15000 

17740 ONJ-32GOSUB17760, 17830, 17830, 17850, 17850, 17850, 17870 
17750 GOTO15000 

17760 IFL=1THENGOSUB17820:PRINT"AND THERE'S THE OUTLINE OF A DOO 

R AROUND HIM.":IFDOO(0,0)=-1THENDOO(0,0)=1:N(L,1)="DOOR. "+N(L 

,1) : RETURN : ELSE RET URN 
17770 IFL=7THENGOSUB17820:PRINT"HE'S UNDERWATER, AND THE MEDALLI 

ON'S RUBY IS GLOWING 1 ": RETURN 
17780 IFL=19THENGOSUB17820:PRINT"THE OPAL IN IT APPEARS TO BE GL 

OWING ! " : RETURN 

17790 I FL=21THEN PRINT "THERE 1 S A PYRAMIDAL DEPRESSION IN THE WALL 
. ": RETURN 

17800 IFL=23THENGOSUB17820:PRINT"THE DIAMOND IN IT IS GLOWING."- 

RETURN 
17810 GOTO19630 

17820 PRINT"I SEE A BASE RELIEF SCULPTURE OF A MAN WEARING A MED 
ALL I ON . " : RETURN 

17830 IFL=20RL=170RL=190RL=210RL=240RL=4THENPRINT"THERE'S A HEXA 
GON PAINTED ON IT.": RETURN 

17840 GOTO19630 

17850 IFL=X10RL=X2THENPRINTRIGHT$(OBJET(J,3) , LEN (OBJET ( J . 3 ) )-2) • 
RETURN v ' 91 * 

17860 GOTO19660 

17870 IFL=10RL=20RL=130RL=140RL=150RL=180RL=210RL=230RL=220RL=24 

ORL=26ORL=29THENGOTO19650 
17880 PRINT"WHAT DOOR? ": RETURN 

17890 REM *** GET, TAKE, PICKUP, MOVE, GRAB, UNLOAD *** 

17900 IFI>31THEN18040 

17910 IFA=0ANDI>26ANDK48THEN 19680 

17920 IFJ>21THEN19680 

17930 IFJ=11THENPRINT"I CAN'T DO THAT, THAT'S STEALING !": GOTOl 50 
00 

17940 IFJ=9THENIFB1=0ORB2=0ORB3=0ORB4=0ORB5=0THENPRINT"THEY 7UST 
CRUMBLE TO DUST . " : GOSUB5000 : IFB5=0THEN 15000ELSEOBJET ( 9 0>="DU 
ST":OBJET(9,1)="DUS":OBJET(9,3)="00ACHOOO!":GOTO15000 



70 BASIC Adventures 



Atlantean Odyssey 



17950 Xl=VAL(0BJET(J,2) ) 

17960 IFX1=-1THENPRINT"I ALREADY HAVE IT. " : GOTO 15 000 

17970 IFXlOLAND(XlO-20R0BJET(l,2) <>"-l" )THEN19620 

17980 IFIM>5THEN19670 

17990 IM=IM+1 

18000 0BJET(J,2)="-1" 

18010 IFX1=-2THENIN=IN-1 

18020 GOTO19560 

18030 REM *** UNLOCK, UNLOAD, UNLIGHT *** 

18040 IFIO32THEN18170 

18050 IFJ=5THENL2=0:GOTO19560 

18060 IFJ=6THENL3=0:GOTO19560 

18070 IFJO38THEN19550 

18080 FORX2=0TO11 

18090 IFDOO(X2,0) OLTHEN18140 

18100 IFDOO(X2,1)=0THENPRINT"IT'S ALREADY UNLOCKED .": RETURN 

18110 IFOBJET(16,2)="-3"THENDOO(6,1)=0 

18120 IFOBJET(17,2) ="-3"THEND00 (9, 1) =0 

18130 GOTO19810 

18140 NEXT 

18150 GOTO19700 

18160 REM *** DROP, PUT, PLACE, GIVE, TRADE, SET, LOAD, THROW, T 

OSS *** 
18170 IFI>41THEN18530 
18180 IFJ>39THEN19540 
18190 X1=VAL(0BJET(J,2) ) 
18200 IFX1O-1ANDJO11THEN19690 
18210 IFIO39THEN18300 
18220 IFJO14THEN19520 
18230 INPUT"WITH WHAT" ; Q 
18240 IFLEFT$ (Q,3) <> "TRI "THEN 1955 
18250 IFOBJET (0,2) <>"-l" THEN 19690 
18260 OBJET(0,2)="" 
18270 IM=IM-1 
18280 S1=S1+1 
18290 GOTO15000 
18300 IFI=34ORI=35THEN18410 
18310 IFIO37ORJO11THEN18390 

18320 IFT1=1THENPRINT"BUT THEY'RE EMPTY !" :GOTO15000 
18330 IFL=13THENGOSUB19920: IFZ=0THEN15000ELSEOBJET (11,2) ="-1" : IF 
X=-1THENIM=IM+1 

18340 Xl=VAL(OBJET(13,2) ) : IFX10LANDX10-1ANDX10-3THEN 17990 

18350 PRINT"OOPS, THE OLD TANKS LOST THEIR AIR WHEN I CHANGED 

TO THE TWO NEW ONES, BUT THE NEW ONES ARE FINE!" 

18360 Al=50 

18370 Tl=l 

18380 GOTO19560 

18390 IM=IM-1 

18400 0BJET(J,2)=STR$ (L) :GOTO19560 
18410 INPUT"IN WHAT" ; Q 

18420 IFLEFT$ (Q, 3) ="WAL"THENIFL=21ANDJ=16THEND00 (6 , 1 ) =0 : DOO (6,2) 
=0:GOTO19820 

18430 IFLEFT$ (Q, 3) ="MET"THENIFL=26ANDJ=17THENDOO ( 9 , 1 ) =0 : DOO (9,2) 
=0:GOTO19820 



Atlantean Odyssey 



BASIC Adventures 71 



18440 IFLEFT$ (Q, 3) <>"KNA"THEN18390 

18450 IFOBJET(J, 2) O"-1"THEN19690 

18460 IFIN>5THEN19780 

18470 IN=IN+1 

18480 IM=IM-1 

18490 OBJET(J, 2)="-2" 

18500 GOTO19560 

18510 REM *** MISCELLANEOUS COMMANDS *** 

18520 REM *** OPEN CLOSE *** 

18530 IFI>43THEN18680 

18540 IFJ=8THEN19710 

18550 IFJO39THEN19560 

18560 FORX1=0TO11 

18570 IFDOO(X1,0) OLTHEN18660 

18580 IFI=43THEN18630 

18590 IFDOO(Xl, 1)=1THEN19760 

18600 IFDOO(X1,2)=0THENPRINT"IT'S ALREADY OPEN . " :GOTO15000 
18610 DOO(X1,2)=0 
18620 GOTO19560 

18630 IFDOO(Xl,2)=lTHENPRINT"IT'S ALREADY CLOSED. " :GOTO15000 
18640 DOO(Xl,2)=l 
18650 GOTO19560 
18660 NEXT 
18670 GOTO19700 

18680 ONI-43GOSUB18700, 18720, 18760 ,19510, 18850 ,191 10 , 19110, 19110 
,19190,19220,19280,19310,19310,19310,19350,19350,19350,19360,1 
9440 

18690 GOTO15000 

18700 IFL>17THENPRINT"I'M UNDERWATER YOU DUMMY . M : RETURN 

18710 PRINT"I DON'T HAVE ANY MATCHES . n : RETURN 

18720 IFJ=5THENL2=1:GOTO19590 

18730 IFF=1THEN17440 

18740 IFJ=6THENL3=1:GOTO19590 

18750 GOTO18700 

18760 IFJ=29ANDL>29THENPRINT"I CAN'T REACH HIM. " : RETURN 

18770 IFJ<18ORJ>27THEN19510 

18780 IFOBJET(18,2) <>"-l"THEN19730 

18790 IFJ=26ANDL=23THENPRINT"THE SCULPTURE MOVED. ": IFDOO ( 1 1 , ) =- 
23THENDOO (11,0) =23 :N (L, l)="DOOR.": RETURN :ELSERETURN 

18800 IFJ=24THENOBJET(J,2)="-4":T=2:PRINT"IT GLOWED BRIEFLY ! " : RE 
TURN 

18810 IFJ=25ANDL=20THEND=D+1: L=RND(10) : RETURN 
18820 IFJO27THEN19510 

18830 IFL=20RL=40RL=170RL=190RL=21THENL=VAL(N (L,8) ) : CLS : RETURN 

18840 GOTO19510 

18850 REM *** SHOOT *** 

18860 IFJ=14THEN19050 

18870 INPUT"WITH WHAT" ; Q 

18880 IFLEFT$ (Q,3) <> "SPE"THEN19720 

18890 IFOBJET(14,2) <>"-l"THEN19730 

18900 IFS1=0THEN17530 

18910 IFJO29THEN18960 

18920 IFLO0THEN19740 

18930 PRINT"I GOT'IM! UH OH1 

HE'S MAD. HE ATTACKS AND KILLS ME 1 

I'M DEAD." 



72 BASIC Adventures 



Atlantean Odyssey 



18940 L=20 

18950 RETURN 

18960 IFJO32THEN18990 

18970 IFL<19ORL>29THEN19600 

18980 IFRND ( 10 ) <2THENPRINT"GOT ONE 1 BUT IT SWAM AWAY WITH THE T 

RIDENT. " :S1=S1-1: RETURN 
18990 GOSUB19750 
19000 GOTO19020 
19010 GOSUB19590 
19020 S1=S1-1 
19030 OBJET (0,2) =STR$ (L) 
19040 RETURN 
19050 INPUT"AT WHAT" ;Q 
19060 FORJ=0TO39 

19070 IFOBJET (J, 1)=LEFT$ (Q, 3) THEN 18890 
19080 NEXT 
19090 GOTO19720 

19100 REM *** BREAK, HIT, KICK *** 

19110 IFJ>21THEN19510 

19120 Xl=VAL(OBJET(J,2) ) 

19130 IFX1OLANDX1O-1THEN19740 

19140 IFX1=-1THENIM=IM-1 

19150 IFX1=-2THENIN=IN-1 

19160 OBJET ( J , 2) =STR$ (L) 

19170 OBJET(J,3)="14" 

19180 RETURN 

19190 IFJ=29ANDL>29THEN18930 

19200 GOSUB19590 

19210 GOTO19510 

19220 IFJO39THEN19720 

19230 FORX2=0TO11 

19240 IFDOO(X2,0) OLTHEN19270 

19250 IFDOO(X2,l)=lTHENPRINT"IT'S ALREADY LOCKED. ": RETURN 
19260 GOTO19810 

19270 NEXT : PRINT" WHAT DOOR? ": RETURN 
19280 GOSUB19590 
19290 PRINTRIGHT$(Q,LEN(Q)-4) 
19300 RETURN 

19310 IFJO29ANDJO32THEN19720 
19320 PRINT"IT'S TOO FAST FOR ME." 
19330 RETURN 

19340 PRINT"I CAN'T DO THAT, I'M NOT REALLY ALIVE." 
19350 RETURN 

19360 IFJ=18THENPRINT"IT DOESN'T HAVE A CHAIN .": RETURN 
19370 IFJO13THEN19500 

19380 IFVAL(OBJET(J,2) ) =-3THENPRINT" I AM WEARING IT I " : RETURN 

19390 IFVAL (OBJET (J, 2) ) OLANDVAL (OBJET ( J , 2 ) ) O-ITHEN 19740 

19400 IFIM>5THEN19790 

19410 GOSUB19590 

19420 IM=IM-l:OBJET(J,2)="-3" 

19430 RETURN 

19440 IFJO13THEN19500 

19450 IFVAL(OBJET(J,2) ) O-3THEN19730 

19460 IFIM>5THEN19790 



Atlantean Odyssey 



BASIC Adventures 73 



19470 OBJET(J, 2)="-l" 

19480 IM=IM+1 

19490 GOTO19590 

19500 PRINT" HUH???" : RETURN 

19510 PRINT "NOTHING HAPPENED. ": RETURN 

19520 PRINT"I MUST BE DUMB, I DON'T UNDERSTAND YOU . " : GOTO 150 00 

19530 PRINT"I CAN SEE NOTHING SPECIAL. " :GOTO15000 

19540 PRINT"I DON'T KNOW WHAT YOU WANT. " :GOTO15000 

19550 PRINT"SORRY , I CAN'T DO THAT. " :GOTO15000 

19560 PRINT"OK" :GOTO15000 

19570 PRINT"I CAN'T, I'M IN THE WRONG PLACE .": RETURN 

19580 PRINT"I DON'T HAVE ALL OF THE TREASURE ! " : RETURN 

19590 PRINT"OK" : RETURN 

19600 PRINT"I'M NOT IN WATER, DUMMY .": RETURN 

19610 PRINT"I AM SWIMMING !" :GOTO15000 

19620 PRINT"IT'S NOT HERE . " :GOTO15000 

19630 PRINT"I SEE NOTHING OF INTEREST. ": RETURN 

19640 PRINT"I CAN'T DO THAT.... YET !": GOTOl 5000 

19650 PRINT"I SEE NOTHING SPECIAL .": RETURN 

19660 PRINT"WHERE?" : RETURN 

19670 PR INT" MY HANDS ARE FULL. " :GOTO15000 

19680 PRINT"I MAY BE STRONG, BUT I'M NOT THAT STRONG !" :GOTO15000 

19690 PRINT"I DON'T HAVE IT! " : GOTOl 50 00 

19700 PRINT"WHAT DOOR? " : GOTO15000 

19710 PRINT"IT DOESN'T HAVE A LID. " : GOTO1500 

19720 PRINT"WHAT?" : RETURN 

19730 PRINT"I DON'T HAVE IT! " : RETURN 

19740 PRINT"IT'S NOT HERE .": RETURN 

19750 PR I NT "MISSED. " : RETURN 

19760 PRINT"I CAN'T, IT'S LOCKED! " :GOTO15000 
19770 PRINT"I CAN'T, ITS CLOSED. " :GOTO15000 
19780 PRINT"ITS FULL !": GOTOl 5000 
19790 PRINT"MY HANDS ARE FULL .": RETURN 

19800 PRINT"YOU ARE AN AVERAGE ADVENTURER, YOU ";:GOTO16590 

19810 PRINT"I DON'T HAVE A KEY !": GOTOl 5000 

19820 PRINT"HEY, IT DID SOMETHING !": GOTOl 5000 

19830 I FHl>6THEN PRINT "SORRY , OUT OF HINTS! " :GOTO15000 

19840 GOSUB19920:IFZ=0THEN15000 

19850 ONH1GOSUB19860, 19870, 19880, 19890, 19900, 199 10: H1=H1+1: GOTOl 
5000 

19860 PRINT"TO LEAVE THE UNDERWATER TEMPLE REQUIRES THE BURIED M 

EDALLION . " : RETURN 
19870 PRINT"TO CHANGE AIR TANKS, TRADE TANKS .": RETURN 
19880 PRINT"KEYS DON'T ALWAYS LOOK LIKE KEYS, SOME ARE CYLINDERS 

. " : RETURN 

19890 PRINT"THE MEDALLION'S RUBY WILL LET YOU STAY UNDERWATER.": 
RETURN 

19900 PRINT"ONLY TWO TREASURES ARE UNDERWATER. ": RETURN 
19910 PRINT"THE SAPPHIRE CAN GET YOU OUT OF DAVY JONES LOCKER.": 
RETURN 

19920 Z=0 : FORI=16T021 : X=VAL (OBJET (I , 2) ) : I FX=-10RX=-20RX=LTHENZ=Z 
+ 1 



74 BASIC Adventures 



Atlantean Odyssey 



19930 NEXT: IFZ=0THENIFI=37THENPRINT" I HAVEN'T ANYTHING OF VALUE. 

" : RETURN : ELSEZ=-1 : RETURN 

19940 INPUT"IT'LL COST A TREASURE! WHICH ONE";Q 

19950 FORI = 16T021: IFLEFT$ (Q, 3) =OBJET (1 , 1 ) THEN 19970 

19960 NEXT : PR I NT "THAT ' S NOT A TREASURE" : Z=0 : RETURN 

19970 X=VAL (OBJET (1,2) ) : IFXO-1ANDXO-2ANDXOLTHENZ = : GOTOl 974 

19980 FORJ=0TO3:OBJET(I,J)="":NEXT:PRINT"EXCELLENT CHOICE." 

19990 IFX=-1THENIM=IM-1 

20000 IFX=-2THENIN=IN-1 

20010 RETURN 



The above listing is the compacted complete version of Atlantean Odyssey. It will 
run in 48K RAM with 1 file allocated. For convenience, the expanded version of 
the graphics is listed below. 



10 DIM D(ll, 3) : 

1000 PRINTS 900, "" : INPUT "LOCATION"; L : GOSUB 1030 : GOTO 10 
00 

1030 PRINT@ 0, CHR$(30) : PRINT : PRINT : PRINT : PRINT : PRINT 

: PRINT : PRINT : PRINT : PRINT 
1040 GOSUB 2960 

1050 ON L GOTO 1080, 1130, 1190, 1270, 1350, 1410, 1460, 1550, 1 
610, 1650, 1700, 1730, 1770, 1840, 1910, 1980, 2020, 2090, 216 
0, 2220, 2230, 2320, 2370, 2410, 2480, 2510, 2530, 2620, 2690, 
2740, 2760, 2780 

1080 GOSUB 3040 

1090 GOTO 3140 

1130 GOSUB 2960 

1140 GOSUB 3480 

1150 GOSUB 4360 

1160 GOTO 4420 

1190 GOSUB 3480 

1200 GOSUB 3500 

1210 GOSUB 3530 

1220 GOSUB 3630 

1230 GOSUB 3670 

1240 GOTO 3860 

1270 GOSUB 3480 

1280 GOSUB 3500 

1290 GOSUB 3530 

1300 GOSUB 3630 

1310 GOTO 3670 

1350 GOSUB 2830 

1360 GOSUB 2890 

1370 GOTO 3000 



Atlantean Odyssey 



BASIC Adventures 75 



1410 GOSUB 3190 
1420 GOSUB 3230 
1430 GOTO 3000 
1460 GOSUB 3480 
1470 GOSUB 3500 
1480 GOSUB 3530 
1490 GOSUB 3690 
1500 GOSUB 3630 
1510 I = 15599 ; 
1550 GOSUB 2890 
1560 GOTO 3280 
1610 GOSUB 3040 
1650 GOSUB 3300 
1660 GOSUB 3330 
1670 GOTO 3350 
1700 GOTO 3560 
1730 GOSUB 2960 
1740 GOTO 3400 
1770 GOSUB 3480 
1780 GOSUB 3500 
1790 GOSUB 3530 
1800 GOSUB 3630 
1810 GOTO 3880 
1840 GOSUB 3480 
1850 GOSUB 3500 
1860 GOSUB 3530 
1870 GOSUB 4360 
1880 GOTO 4460 
1910 GOSUB 3480 
1920 GOSUB 3500 
1930 GOSUB 3530 
1940 GOSUB 3630 
1950 GOTO 3760 
1980 GOSUB 3530 
1990 GOTO 3810 
2020 GOSUB 3480 
2030 GOSUB 3500 
2040 GOSUB 3530 
2050 GOSUB 4190 
2060 GOSUB 4330 
2070 GOTO 4420 
2090 I = 15378 : 
2110 GOSUB 3920 
2120 I = 15411 : 
: GOSUB 3960 
2130 I = 15762 : 
5 : GOSUB 3940 
2160 GOSUB 3480 
2170 GOSUB 3500 
2180 GOSUB 3530 
2190 GOSUB 3690 
2200 I - 15585 : 
2210 GOTO 4420 
2220 RETURN 



GOTO 4400 



GOTO 3170 



GOSUB 3940 

GOSUB 3940 : 
: I - 15603 
GOSUB 3940 : 
: GOSUB 3990 



GOSUB 3950 
! GOSUB 3940 
GOSUB 3990 
: GOTO 4010 



I - 15570 : GOSUB 394 
GOSUB 3970 
GOSUB 4050 : I = 1579 



GOSUB 4400 



2230 REM L=21 

2250 GOSUB 3480 

2260 GOSUB 3500 

2270 GOSUB 3530 

2280 GOSUB 4360 

2290 GOTO 4420 

2320 GOSUB 3480 

2330 GOSUB 3500 

2335 GOSUB 4440 

2340 GOSUB 3530 

2350 GOTO 3690 

2370 I = 15585 : GOTO 4400 

2410 GOSUB 3480 

2420 GOSUB 3500 

2430 GOSUB 3530 

2440 GOSUB 4330 

2450 GOTO 4360 

2480 GOTO 3720 

2510 GOTO 3590 

2530 GOSUB 3920 

2540 FOR 12 = 15378 TO 15411 STEP 11 : I = 12 : GOSUB 3940 : GOS 
UB 2580 : I = 12 + 192 : GOSUB 3940 : GOSUB 2580 : NEXT : FOR 
I = 15762 TO 15795 STEP 11 : GOSUB 3940 : GOSUB 3990 : ON RND ( 
3) GOSUB 3990, 4010, 4030 : NEXT 

2560 GOTO 4090 

2580 ON RND ( 4 ) GOTO 2590, 3950, 3960, 3970 

2590 RETURN 

2620 GOSUB 3480 

2630 GOSUB 3500 

2640 GOSUB 3530 

2650 GOSUB 4110 

2660 I = 15637 : GOSUB 3200 : I m 15737 : GOTO 3200 

2690 GOSUB 3480 

2700 GOSUB 3500 

2710 GOSUB 3530 

2720 GOSUB 4170 

2730 GOTO 4330 

2740 GOTO 2890 

2760 GOTO 2890 

2780 GOTO 2890 

2820 REM **** SAILBOAT **** 

2830 POKE 15402, 176 : POKE 15403, 140 : POKE 15404, 159 : POKE 
15405, 147 : POKE 15406, 131 : POKE 15463, 176 : POKE 15464, 1 
40 : POKE 15465, 131 

2840 POKE 15468, 149 : POKE 15469, 130 : POKE 15470, 164 : POKE 
15524, 140 : POKE 15525, 140 : POKE 15526, 143 : POKE 15527, 1 
40 

2841 POKE 15528, 140 : POKE 15529, 140 : POKE 15530, 140 : POKE 
15531, 140 : POKE 15532, 157 : POKE 15533, 140 : POKE 15534, 1 
40 : POKE 15535, 141 

2850 POKE 15585, 131 : POKE 15586, 131 : POKE 15587, 131 : POKE 
15588, 139 : POKE 15589, 179 : POKE 15590, 179 : POKE 15591, 1 
79 : POKE 15592, 179 

2855 POKE 15593, 179 : POKE 15594, 179 : POKE 15595, 179 : POKE 
15596, 179 : POKE 15597, 179 



76 BASIC Adventures 



Atlantean Odyssey Atlantean Odyssey 



BASIC Adventures 77 



2860 POKE 15598, 179 : POKE 15599, 179 : POKE 15600, 179 : POKE 
15601, 179 : POKE 15602, 179 : POKE 15603, 179 : POKE 15604, 1 
79 : POKE 15605, 167 

2870 RETURN 

2880 REM **** BEACH **** 

2890 Y = 1 : POKE 15761, 157 : FOR I = 15762 TO 15807 

2900 X = RND ( 3 ) : IF ABS (Y - X) > 1 THEN 2900 

2910 Y = X : ON X GOSUB 2920, 2930, 2940 : NEXT : RETURN 

2920 POKE I, 131 : RETURN 

2930 POKE I, 140 : RETURN 

2940 POKE I, 176 : RETURN 

2950 REM **** BORDER **** 

2960 FOR I = 16018 TO 16063 : POKE I, 176 : NEXT 

2970 FOR I = 15441 TO 16016 STEP 64 : POKE I, 149 : NEXT 

2980 POKE 16017, 181 : RETURN 

2990 REM **** OLD STONE ROAD **** 

3000 POKE 15767, 188 : POKE 15771, 188 : POKE 15828, 176 : POKE 
15829, 188 : POKE 15830, 143 : POKE 15831, 131 : POKE 15832, 1 
76 : POKE 15833, 188 

3005 POKE 15834, 143 : POKE 15835, 131 

3010 POKE 15891, 190 : POKE 15892, 135 : POKE 15893, 129 : POKE 

15894, 160 : POKE 15895, 190 : POKE 15896, 159 : POKE 15897, 1 

29 : POKE 15890, 184 
3020 POKE 15954, 191 : POKE 15955, 191 : POKE 15958, 191 : POKE 

15959, 191 : POKE 16018, 191 : POKE 16019, 191 : POKE 16022, 1 

91 : POKE 16023, 191 : RETURN 
3030 REM *** CAVE & GROTTO **** 

3040 POKE 15386, 176 : POKE 15387, 140 : POKE 15388, 131 : POKE 

15393, 160 : POKE 15394, 152 : POKE 15395, 188 : POKE 15396, 1 

31 : POKE 15397, 131 
3045 POKE 15398, 131 : POKE 15399, 131 : POKE 15400, 131 : POKE 

15401, 137 : POKE 15402, 140 
3050 POKE 15403, 176 : POKE 15404, 144 : POKE 15412, 130 : POKE 

15413, 137 : POKE 15414, 164 : POKE 15415, 144 : POKE 15447, 1 

76 : POKE 15448, 140 
3055 POKE 15449, 131 : POKE 15455, 184 : POKE 15456, 150 : POKE 

15457, 129 : POKE 15459, 133 
3060 POKE 15468, 130 : POKE 15469, 137 : POKE 15470, 140 : POKE 

15471, 176 : POKE 15478, 170 : POKE 15479, 135 : POKE 15480, 1 

37 : POKE 15481, 164 
3065 POKE 15482, 176 : POKE 15508, 160 : POKE 15509, 140 : POKE 

15510, 131 : POKE 15511, 159 
3070 POKE 15517, 160 : POKE 15518, 134 : POKE 15519, 170 : POKE 

15536, 141 : POKE 15537, 144 : POKE 15542, 170 : POKE 15547, 1 

37 : POKE 15548, 144 
3075 POKE 15571, 152 : POKE 15572, 129 : POKE 15580, 152 : POKE 

15581, 129 : POKE 15601, 181 
3080 POKE 15612, 130 : POKE 15613, 164 : POKE 15633, 160 : POKE 

15634, 134 : POKE 15643, 151 : POKE 15665, 138 : POKE 15666, 1 

48 : POKE 15678, 137 
3085 POKE 15679, 144 : POKE 15697, 159 : POKE 15706 154 
3090 POKE 15730, 173 : POKE 15743, 175 : POKE 15770,' 149 • POKE 

15441, 128 : POKE 15505, 128 : POKE 15569, 128 



3100 POKE 15794, 138 : POKE 15795, 176 : POKE 15796, 176 : POKE 
15797, 176 : POKE 15798, 176 : POKE 15799, 176 : POKE 15807, 1 
70 : POKE 15832, 176 

3101 POKE 15833, 140 : POKE 15834, 131 : POKE 15864, 137 : POKE 
15865, 140 : POKE 15866, 164 : POKE 15867, 144 : POKE 15871, 1 
70 

3110 POKE 15893, 176 : POKE 15894, 140 : POKE 15895, 131 : POKE 

15931, 130 : POKE 15932, 164 : POKE 15933, 144 : POKE 15935, 1 

70 : POKE 15955, 176 
3115 POKE 15956, 134 : POKE 15996, 138 : POKE 15997, 164 : POKE 

15999, 170 : POKE 16018, 182 : POKE 16062, 187 : POKE 16063, 1 

90 

3120 RETURN 

3130 REM *** END OF CAVE *** 

3140 POKE 15647, 160 : POKE 15649, 160 : POKE 15711, 191 : POKE 
15712, 189 : POKE 15713, 186 : POKE 15714, 180 : POKE 15715, 1 
40 : POKE 15716, 131 

3145 POKE 15717, 131 : POKE 15718, 131 : POKE 15719, 131 : POKE 
15720, 131 : POKE 15721, 131 

3150 POKE 15722, 131 : POKE 15723, 140 : POKE 15724, 140 : POKE 
15725, 140 : POKE 15726, 140 : POKE 15727, 176 : POKE 15771, 1 
76 : POKE 15772, 176 

3151 POKE 15773, 140 : POKE 15774, 174 : POKE 15775, 191 : POKE 
15776, 191 : POKE 15777, 191 : POKE 15778, 191 : POKE 15792, 1 
31 

3160 POKE 15793, 131 : POKE 15794, 142 : RETURN 

3170 POKE 15924, 191 : POKE 15925, 191 : POKE 15926, 191 : POKE 
15860, 160 : POKE 15861, 148 : POKE 15862, 170 : POKE 15961, 1 
84 : POKE 15863, 144 : RETURN 

3180 REM *** JUNGLE TREES *** 

3190 I = 15447 : GOSUB 3200 : I = 15442 : GOSUB 3200 : I = 15505 
: GOSUB 3200 : I = 15410 : GOSUB 3200 : I = 15605 : GOSUB 320 
0:1= 15482 : GOSUB 3200 

3200 POKE I, 184 : POKE I + 1, 190 :- POKE 1 + 2, 191 : POKE I + 
3, 173 : POKE 1+4, 180 : POKE I + 63, 174 : POKE I + 64, 157 

: POKE I + 65, 189 : POKE I + 66, 159 

3201 POKE I + 67, 159 : POKE I + 68, 187 : POKE I + 69, 157 : PO 
KE I + 128, 139 : POKE I + 129, 174 : POKE I + 130, 190 : POKE 

I + 131, 158 : POKE I + 132, 135 : POKE I + 194, 191 
3210 POKE I + 258, 191 : POKE I + 322, 191 : RETURN 
3220 REM *** TEMPLE *** 

3230 POKE 15386, 160 : FOR I = 15387 TO 15409 : POKE I, 180 : NE 
XT I : FOR I = 15473 TO 15729 STEP 64 : POKE I, 149 : NEXT I : 
I = 15451 : GOSUB 3250 : I = 15456 

3235 GOSUB 3250 : I = 15463 : GOSUB 3250 : I = 15468 : GOSUB 325 


3240 POKE 15451, 151 : POKE 15515, 149 : POKE 15579, 149 : POKE 

15643, 149 : POKE 15707, 181 : RETURN 
3250 POKE I, 130 : POKE I + 1, 191 : POKE 1+2, 129 : POKE I + 
3, 171 : POKE 1+4, 151 : POKE I + 65, 191 : POKE I + 67, 170 
: POKE I + 68, 149 : POKE I + 129, 191 
3255 POKE I + 131, 170 : POKE I + 132, 149 : POKE I + 193, 191 : 

POKE I + 195, 170 : POKE I + 196, 149 : POKE I + 256, 160 
3260 POKE I + 257, 191 : POKE I + 258, 144 : POKE I + 259, 186 : 
POKE I + 260, 181 : RETURN 



78 BASIC Adventures 



Atlantean Ody&> Atlantean Odyssey 



BASIC Adventures 79 



3270 REM *** SEA CAVE ENTRANCE *** 1CC ^ ici 

3280 POKE 15511, 141 : POKE 15510, 152 : POKE 15573 , 151 : poke 

15637, 133 : POKE 15636, 156 : POKE 15699, 170 : POKE 15763, 1 

42 

3290 REM *** CLIFF & CAVE ENTRANCE *** 

3300 POKE 15449, 131 : POKE 15450, 171 : POKE 15514, 138 : POKE 
15515, 176 : POKE 15579, 131 : POKE 15580, 149 : POKE 15644, 1 
49 : POKE 15708, 191 

3305 POKE 15772, 143 : POKE 15512, 140 : POKE 15513, 144 : POKE 

15577, 149 

3310 POKE 15641, 165 : POKE 15706, 169 : POKE 15770, 142 : RETUR 
N 

3320 REM *** CRACK *** 

3330 POKE 15511, 184 : POKE 15575, 169 : POKE 15639, 149 : POKE 

15703, 162 : POKE 15704, 132 : POKE 15767, 142 : RETURN 
3340 REM *** TOP OF CLIFF *** 

3350 FOR I = 15762 TO 15772 : POKE I, 131 : NEXT : POKE 15773, 1 
81 : POKE 15837, 131 : POKE 15838, 140 : POKE 15839, 176 : POK 
E 15826, 131 : POKE 15827, 140 

3355 POKE 15828, 176 : POKE 15892, 138 : POKE 15893, 144 : POKE 
15957, 166 

3360 FOR I = 15904 TO 15910 : POKE I, 179 : NEXT : POKE 15903, 1 

76 : POKE 15911, 131 : POKE 15912, 140 : POKE 15913, 176 
3365 POKE 15975, 131 : POKE 15976, 140 : POKE 15977, 176 
3370 POKE 15978, 131 : POKE 15979, 131 : POKE 15980, 141 : POKE 

15981, 140 : POKE 15982, 176 : POKE 16041, 179 : POKE 16042, 1 

88 : POKE 16047, 179 
3375 POKE 16048, 190 : POKE 16049, 188 : POKE 15958, 176 : POKE 

15959, 176 

3380 POKE 15960, 181 : POKE 16024, 187 : POKE 16030, 183 : POKE 
15966, 166 : POKE 16033, 187 : POKE 16034, 183 : POKE 15969, 1 
48 

3385 POKE 16035, 181 : POKE 16036, 184 : RETURN 
3390 REM *** DOCK *** 

3400 FOR I = 15762 TO 15807 : POKE I, 176 : POKE I + 64, 176 : P 
OKE I + 192, 131 : NEXT : FOR I = 15955 TO 15999 STEP 2 : POKE 
I, 140 : NEXT : FOR I = 15894 TO 15929 STEP 7 
3405 POKE I, 191 : NEXT : FOR I = 15838 TO 15843 : POKE I, 128 : 

POKE I + 64, 128 : POKE I + 128, 128 : NEXT 
3410 POKE 15965, 191 : POKE 16029, 191 : POKE 15972, 191 : POKE 

16036, 191 
3415 PRINT@ 100, "* PAWNSHOP 

*"; : FOR I = 15519 TO 15551 : POKE I, 131 : POKE I 
+ 64, 131 : NEXT 

3420 POKE 15583, 128 : POKE 15584, 128 : POKE 15585, 151 : POKE 
15587, 191 : POKE 15589, 171 : POKE 15590, 128 : POKE 15591, 1 
28 : POKE 15592, 128 
3425 POKE 15593, 151 : POKE 15598, 171 : POKE 15599 128 
3430 POKE 15600, 128 : POKE 15601, 151 : POKE 15611,' 171 : FOR I 

p = i^^ 2 T^ 156 oL. lr 128 : NEXT : P0KE 15649, 181 : POK 

E 15650, 176 : POKE 15651, 191 

34 ?^« KE 17« 652 ini2 6 ,L« KE 15653 ' 186 : P0KE 15657 ' 149 ! P0KE 
15662, 170 : POKE 15665, 149 

3440 PRINT@ 306, "OPEN"; 



3450 POKE 15675, 170 : POKE 15739, 170 : FOR I = 15518 TO 15774 

STEP 64 : POKE I, 191 : NEXT : POKE 15721, 149 : POKE 15785, 1 

81 : POKE 15726, 170 
3455 POKE 15790, 186 : POKE 15729, 181 : FOR I = 15730 TO 15738 

: POKE I, 176 : NEXT : POKE 15739, 186 
3460 POKE 15457, 160 : POKE 15458, 134 : POKE 15459, 191 : POKE 

15479, 191 : POKE 15480, 137 
3465 POKE 15481, 144 : FOR I = 15395 TO 15415 : POKE I, 176 : NE 

XT : RETURN 
3470 REM *** ROOM CENTER *** 

3480 FOR I = 15518 TO 15539 : POKE I, 176 : POKE I + 320, 176 : 
NEXT : FOR I = 15581 TO 15837 STEP 64 : POKE I, 170 : POKE I + 
22, 170 : NEXT : POKE 15859, 186 
3490 REM *** ROOM TOP *** 

3500 POKE 15446, 131 : POKE 15447, 137 : POKE 15448, 140 : POKE 

15449, 176 : POKE 15450, 144 
3505 POKE 15514, 130 : POKE 15515, 131 : POKE 15516, 140 : POKE 

15517, 164 : 

3510 POKE 15540, 140 : POKE 15541, 134 : POKE 15542, 131 : POKE 
15479, 176 : POKE 15480, 152 : POKE 15481, 140 : POKE 15482, 1 
31 : POKE 15483, 129 

3515 POKE 15419, 160 : POKE 15420, 176 : POKE 15421, 140 : POKE 
15422, 134 : POKE 15423, 131 

3520 REM *** ROOM BOTTOM *** 

3530 POKE 16017, 189 : POKE 16018, 188 : POKE 16019, 179 : POKE 

16020, 177 : POKE 15956, 160 : POKE 15957, 176 : POKE 15958, 1 

40 : POKE 15959, 134 
3535 POKE 15960, 131 : POKE 15897, 176 : POKE 15898, 152 : POKE 

15899, 140 : POKE 15900, 131 : POKE 15901, 129 
3540 POKE 15924, 131 : POKE 15925, 137 : POKE 15926, 140 : POKE 

15927, 176 : POKE 15928, 144 : POKE 15992, 130 : POKE 15993, 1 

31 : POKE 15994, 140 
3545 POKE 15995, 164 : POKE 15996, 176 : POKE 16061, 179 : POKE 

16062, 185 : FOR I = 15423 TO 16063 STEP 64 : POKE I, 191 : NE 

XT : RETURN 
3550 REM *** SAILBOAT *** 

3560 FOR I = 15763 TO 15807 STEP 3 : POKE I, 131 : POKE I + 1, 1 

51 : POKE 1+2, 131 : POKE I + 64, 184 : POKE I + 65, 189 : P 

OKE I + 66, 176 : NEXT 
3565 FOR I = 15382 TO 15958 STEP 64 : POKE I, 191 : NEXT : FOR I 

= 15703 TO 15734 : POKE I, 140 : NEXT : POKE 15732, 142 
3570 POKE 15668, 144 : POKE 15667, 137 : POKE 15602, 164 : POKE 

15601, 130 : POKE 15536, 144 : POKE 15535, 137 
3575 POKE 15470, 164 : POKE 15469, 130 : POKE 15404, 144 : POKE 

15403, 137 : RETURN 
3580 REM*** DOOR *** 

3590 POKE 15454, 151 : FOR I = 15455 TO 15469 : POKE I, 131 : NE 
XT : POKE 15470, 171 : FOR I « 15518 TO 15966 STEP 64 : POKE I 
, 149 : POKE I + 16, 170 : NEXT 

3595 'POKE 15642, 191 : POKE 15643, 179 : POKE 15644, 191 : POKE 
16030, 181 : POKE 16046, 186 

3600 IF D(9, 1) = 1 THEN POKE 15712, 183 

3610 RETURN 

3620 REM *** ROOM DOOR *** 



80 BASIC Adventures 



Atlantean OdyW Atbntean Odyssey 



BASIC Adventures 81 



3630 POKE 15653, 151 : POKE 15654, 131 : POKE 15655, 131 : poke 
15656, 131 : POKE 15657, 131 : POKE 15658, 171 : POKE 15717 i 
49 : POKE 15781, 149 

3635 POKE 15845, 181 : POKE 15722, 170 : POKE 15786, 170 : POKE 
15850, 186 

3650 RETURN 

3660 REM*** HALLWAY *** 

3670 POKE 15845, 189 : POKE 15846, 188 : POKE 15847, 179 : POKE 
15848, 177 : POKE 15784, 160 : POKE 15785, 176 : POKE 15786 1 
74 : RETURN ' 1 

3680 REM *** COLUMNS *** 

3690 FOR I = 15443 TO 15955 STEP 64 : POKE I, 191 : POKE I + 3 
191 s POKE I + 38, 191 : POKE I + 41, 191 : NEXT : POKE 15958 
143 : POKE 15993, 131 J-^OB, 

3695 FOR I = 15513 TO 15897 STEP 64 : POKE I, 191 : POKE I + 29 
191 : NEXT : POKE 15926, 143 ' 
3700 FOR I = 15579 TO 15835 STEP 64 : POKE I, 170 : POKE I + l 

3710 REM *** NARROW PASSAGEWAY *** 

"next ? php r 1539 ?J°, 15422 : P0KE *' 140 : P0KE I + 6«, 176 • 

« Jf 1 = 15461 T0 16037 STEP 64 : POKE I, 191 • POKE T '+ 

26, 191 : NEXT : POKE 15397, 188 

37 1606°* E 179 423 ' ! P ° KE 16038 ' 179 = P0KE 160 63, 191 : POKE 

37 14 F ^POKE = i 5 ' 6 2 T ?7 fi 1566 ^ EP " 1 P ° KE I ' 131 « P °« E I ♦ 1, 
: POKeT" 33l, 2 176 7 : JbE" 1 + 3 "' ™ ' P ° KE 1 + 333 ' 140 
3731 FOR I = 15484 TO 15667 STEP 61 POKP t T 

140 : POKE I + 2, 13T : POKE I + \flft ?™ ' IV* 1 P ° KE 1 + l > 

: POKE I + 310, \A . NEXT ' ?6 ' P ° KE 1 + 309 ' 140 

3740 POKE 15666, 176 : POKE 15729, 149 • POKE 1*7*1 xn« ™ 

15793, 141 : POKE 15794, 140 K7 1 ' 170 1 P0KE 

3750 REM *** CANOPY BED *** " 5?95 ' 142 ! RETURN 

3760 FOR I = 15454 TO 15474 • POKP t 17* 

POKE I + 384, 179 : NEXT • "pOKE ft 1 00 1 + 128 > 130 « 

POKE 15539, 'l80 : POKE 15838 182 82 1 P ° KE 15538 ' 178 : 

3765 POKE 15859, 190 : FOR I = 15507 Tn „ 

KE I + 384, 140 : NEXT 15514 : P0KE l * 13 ± > PO 

3770 FOR I = 15543 TO 15550 : POKP t 101 

NEXT : POKE 15897, 188 : POKE 15898 lL* 1 + 384 ' 140 1 

OKE 15928, 156 15898, 156 : POKE 15927, 188 : P 

3771 FOR I = 15506 TO 15890 STEP 64 POKP t i7* 

15441, 181 : POKE 15442, 144 POKE f^ftftQ 'ill* 1 NEXT : P0KE 
54 ' ' P0KE 15889, 181 : POKE 15890, 1 

3780 POKE 15454, 140 • pokp irki 

15474, 152 : POKE 15475^ 140 ^POKE 1547 fi KE i if 452 ' ^ « p OKE 
29 : POKE 15413, 160 15476, 131 : POKE 15477, 1 

3785 POKE 15414, 176 • pokp k/u , An 

15417, 131 ' ' P ° KE 15415 ' 140 J POKE 15416, 134 : POKE 

3790 POKE 15377, 151 • POKP ir^q 

15380, 164 : POKE 15381 , 17 ^ : pok E1 I 5319 ' 140 1 P0KE 

31 : POKE 15385, 140 15383 ' 130 I POKE 15384, 1 

3795 POKE 15386, 164 : POKE 15^ft7 1-7* 

/ •* ruRt, lbJ87, 176 : RETURN 




3800 REM *** BALCONY *** 

3810 FOR I = 15775 TO 15793 STEP 4 : POKE I, 135 : POKE I + 1, 1 

87 : POKE I + 2, 147 : POKE I + 3, 175 : POKE I + 64, 180 : PO 

KE I + 65, 187 : POKE I + 66, 177 : POKE I + 67, 190 
3815 NEXT : POKE 15774, 191 : POKE 15838, 191 : POKE 15795, 191 

: POKE 15859, 191 
3820 POKE 15773, 174 : POKE 15772, 140 : POKE 15771, 176 : POKE 

15770, 160 : POKE 15796, 140 : POKE 15797, 164 : POKE 15798, 1 

76 : POKE 15830, 176 
3825 POKE 15831, 152 : POKE 15832, 140 : POKE 15833, 131 : POKE 

15834, 129 : POKE 15863, 131 : POKE 15837, 170 
3830 POKE 15864, 137 : POKE 15865, 140 : POKE 15866, 176 : POKE 

15867, 144 : POKE 15889, 181 : POKE 15890, 176 : POKE 15891, 1 

40 : POKE 15892, 134 
3835 POKE 15893, 131 : POKE 15931, 130 : POKE 15932, 131 : POKE 

15933, 140 : POKE 15934, 164 : POKE 15935, 191 
3840 RETURN 

3850 REM *** CRACK IN WALL. OF ROOM *** 

3860 POKE 15832, 153 : POKE 15895, 170 : POKE 15638, 152 : POKE 
15702, 170 : POKE 15766, 166 : POKE 15830, 165 : POKE 15894. 1 
53 : POKE 15958, 186 

3865 POKE 15768, 153 : POKE 15704, 155 : POKE 15640, 164 : POKE 
15639, 137 : RETURN 

3870 REM *** COUNTER *** 

3880 POKE 15770, 160 : POKE 15771, 176 : FOR I = 15772 TO 15791 
: POKE I, 140 : NEXT : POKE 15773, 142 : POKE 15792, 176 : FOR 
I = 15834 TO 15863 : POKE I, 131 
3885 POKE I + 64, 176 : NEXT : POKE 15833, 151 : POKE 15857, 171 

: POKE 15897, 181 
3890 POKE 15921, 186 : POKE 15864, 149 : POKE 15786, 142 : POKE 
15781, 141 : POKE 15718, 160 : POKE 15928, 149 : PRINT@ 237, ■ 
TRADE"; 

3895 PRINTS 299, "TREASURE"; : PRINTS 365, "HERE."; 
3900 RETURN 

3910 REM *** CITY SCAPE 

3920 FOR I = 15954 TO 15999 : POKE I, 131 : NEXT : RETURN 
3930 REM *** BASIC BLOCK *** 

3940 FOR II = I TO I + 9 : POKE II, 131 : NEXT : POKE I, 151 : P 
OKE I + 10, 171 : POKE I + 64, 149 : POKE I + 74, 170 : POKE I 
+ 128, 149 : POKE I + 138, 170 : POKE I + 66, 183 

3945 FOR II = I + 67 TO I + 71 : POKE II, 179 : NEXT : POKE I + 
72, 187 : RETURN 

3950 POKE I + 65, 183 : POKE I + 67, 187 : POKE I + 68, 183 : PO 
KE I + 70, 187 : POKE I + 71, 183 : POKE I + 73, 187 : RETURN 

3960 POKE I + 68, 187 : POKE I + 69, 128 : POKE I + 70, 183 : RE 
TURN 

3970 POKE I + 65, 183 : POKE I + 66, 187 : POKE I + 68, 183 : PO 

KE I + 70, 187 : POKE I + 72, 183 : POKE I + 73, 187 : RETURN 

3980 REM *** STREET WINDOW 

3990 FOR II = I + 66 TO I + 72 : POKE II, 131 : POKE II + 64, 14 
: NEXT : POKE I + 65, 151 : POKE I + 73, 171 : POKE I + 129 
141 : POKE I + 137, 142 : RETURN 



Atlantean Odyssey Atlantean Odyssey 



BASIC Adventures 83 



POKE I + 69, 151 
POKE I + 131, 170 : 



71, 151 



: PO 
POKE 



: PO 
POKE 



+ 129, 149 : POKE 
132, 170 : FOR II 
NEXT 



+ 130, 128 : 
I + 69 TO I + 



FOR I - 15784 
: POKE 15785, 

2 : POKE I, 1 
+ 65, 149 : N 



4000 REM *** DOOR ON LEFT **** 
4010 POKE I + 67, 171 : POKE I + 68, 128 
KE I + 129, 149 : POKE I + 130, 128 
I + 132, 128 : POKE I + 133, 141 : RETURN 
4020 REM *** DOOR ON RIGHT *** 

4030 POKE I + 69, 171 : POKE I + 70, 128 : POKE I + 

KE I + 133, 142 : POKE I + 134, 128 : POKE I + 135, 149 
I + 136, 128 : POKE I + 137, 170 : RETURN 
4040 REM *** CENTER DOOR *** 
4050 POKE I + 68, 171 : POKE I 
POKE I + 131, 128 : POKE I + 
73 : POKE II, 128 : POKE II + 64, 128 
4060 REM *** PLAZA *** ■ 

4070 FOR I = 15773 TO 15783 : POKE I, 142 : NEXT . 
TO 15794 : POKE I, 141 : NEXT : POKE 15782, 160 
144 : POKE 15781, 174 ^ moo 

4071 POKE 15786, 157 : FOR I = 15845 TO 15849 STEP 
70 : POKE I + 1, 149 : POKE I + 64, 170 : POKE I 
EXT 

4080 REM *** EDGE OF BLDG m '1. 

4090 POKE 15422, 151 : POKE 15423, 131 : POKE 15487, 183 -FOR I 
= 15486 TO 15934 STEP 64 : POKE I, 149 : NEXT : POKE 15614, 1 

4095 POKE K 15679! 5 170 3 : POKE 15806, 151 : POKE 15807, 131 : POKE 

15871, 151 : POKE 15935, 149 : RETURN 
4100 REM *** IN A PLAZA *** 

4110 POKE 15383, 148 : POKE 15384, 160 : POKE 15389, 170 : POKE 
15448, 142 : POKE 15450, 149 : POKE 15451, 168 : POKE 15453, 1 
86 : POKE 15411, 170 ' 

4115 POKE 15416, 160 : POKE 15418, 148 : POKE 15419, 170 
15421, 141 : POKE 15475, 170 : POKE 15476, 144 

4120 POKE 15477, 168 : POKE 15479, 181 : POKE 15480, 154 
15540, 143 : POKE 15516, 142 : POKE 15517, 175 : FOR I 
TO 15538 : POKE I, 184 : NEXT 

4125 POKE 15539, 186 : POKE 15540, 143 

4130 REM *** TABLE *** 

4140 POKE 15770, 160 : POKE 15771, 176 : FOR I = 15772 TO 15777 

: POKE I, 188 : NEXT : POKE 15773, 190 : POKE 15778, 156 : POK 

E 15779, 188 : POKE 15843, 191 
4150 POKE 15832, 140 : FOR I = 15833 TO 15838 : POKE I, 143 : NE 

XT : POKE 15839, 135 : POKE 15840, 131 : POKE 15838, 191 : POK 

E 15902, 191 
4160 REM*** WINDOW *** 

4170 FOR I = 15658 TO 15665 : POKE I, 131 

NEXT : POKE 15658, 151 : POKE 15665, 171 

OKE 15729, 170 : RETURN 
4180 REM *** BOOKS 
4190 FOR I = 15582 TO 15602 



POKE 

POKE 
15518 



POKE I + 128, 131 
POKE 15722, 149 



OKE I + 128, 176 
186 

4200 IF B2 <> 1 
4210 IF B3 <> 1 
4220 IF B4 <> 1 
4230 IF B5 <> 1 



POKE I, 176 : POKE I + 64, 176 : P 
POKE I + 192, 176 : IF Bl <> 1 THEN POKE I, 



THEN POKE 
THEN POKE 
THEN POKE 
THEN POKE 



+ 
+ 
+ 
+ 



64, 181 
128, 186 
192, 181 
256, 186 



4240 NEXT 
4250 I = 15582 

4260 POKE 15603, 186 : POKE 15667, 186 : POKE 15731, 186 : POKE 
15795, 186 : POKE 15859, 186 : IF Bl <> 1 THEN POKE I, 191 : P 
OKE I + 10, 191 : POKE I + 12, 191 

4270 IF B2 <> 1 THEN POKE I + 75, 191 : POKE I + 70, 191 : POKE 
I + 85, 191 

4280 IF B3 <> 1 THEN POKE I + 128, 191 : POKE I + 135, 191 : POK 
E I + 140, 191 

4290 IF B4 <> 1 THEN POKE I + 193, 191 : POKE I + 203, 191 : POK 

E I + 204, 191 : POKE I + 213, 191 
4300 IF B5 <> 1 THEN POKE I + 257, 191 : POKE I + 261, 191 : POK 

E I + 270, 191 : POKE I + 275, 191 
4310 RETURN 

4320 REM *** LEFT DOOR *** 

4330 POKE 15507, 151 : POKE 15508, 137 : POKE 15509, 140 : POKE 
15510, 176 : POKE 15511, 144 : FOR I = 15571 TO 15891 STEP 64 
: POKE I, 149 : POKE 1+5, 170 : NEXT 

4335 POKE I, 149 : POKE 15700, 148 : GOSUB 4800 : IF Dl = 1 RETU 
RN 

4340 FOR I = 15572 TO 15575 : POKE I, 131 : POKE I + 320, 176 : 

NEXT : POKE 15571, 151 : POKE 15576, 171 : POKE 15700, 128 
4345 POKE 15891, 181 : POKE 15896, 186 : RETURN 
4350 REM *** RIGHT DOOR *** 

4360 POKE 15545, 160 : POKE 15546, 176 : POKE 15547, 140 : POKE 
15548, 134 : POKE 15549, 171 : FOR I = 15607 TO 15927 STEP 64 
: POKE I, 170 : POKE 1+6, 170 : NEXT 

4365 POKE 15608, 131 : POKE 15609, 129 : POKE 15927, 186 : POKE 
15997, 170 : POKE 15740, 168 

4370 GOSUB 4800 : IF Dl = 1 .RETURN 

4380 FOR I = 15608 TO 15612 : POKE I, 131 : POKE I + 320, 176 : 
NEXT : POKE 15740, 128 : POKE 15613, 171 : POKE 15933, 186 : R 
ETURN 

4390 REM*** WALL CARVING *** 

4400 POKE I, 176 : POKE I + 1, 176 : POKE I + 63, 160 : POKE I + 
64, 187 : POKE I + 65, 183 : POKE I + 66, 144 : POKE I + 125, 
130 : POKE I + 126, 141 

4405 POKE I + 127, 135 : POKE I + 128, 189 : POKE I + 129, 191 : 
POKE I + 130, 149 : POKE I + 192, 159 : POKE I + 193, 159 : P 
OKE I + 256, 181 : POKE I + 257, 181 : RETURN 

4410 REM *** HEXAGON ON FLOOR *** 

4420 FOR I = 15909 TO 15916 : POKE I, 176 : NEXT : POKE 15970, 1 
76 : POKE 15971, 140 : POKE 15972, 131 : POKE 15981, 131 : POK 
E 15982, 140 : POKE 15983, 176 

4425 POKE 16032, 188 : POKE 16033, 179 : POKE 16048, 179 : POKE 
16049, 188 : RETURN 

4430 REM *** SMALL DOORS *** 

4440 POKE 15788, 151 : FOR I = 15789 TO 15793 : POKE I, 131 : NE 
XT : POKE 15794, 171 : POKE 15852, 181 : POKE 15858, 186 : RET 
URN 

4450 REM *** BED & BALCONY *** 

4460 FOR I - 15580 TO 15595 : POKE I, 176 : POKE I + 61, 176 : P 
OKE I + 125, 130 : POKE I + 192, 176 : NEXT : POKE 15579, 160 
: POKE 15596, 176 : POKE 15640, 160 



4465 POKE 15641, 184 : POKE 15642, 182 : POKE 15643, 177 : POKE 

15655, 156 : POKE 15656, 134 1c ^ C n 
4470 POKE 15657, 177 : POKE 15658, 152 : POKE 15659, 140 : POKE 

171 : POKE 15709, 170 : POKE 15719, 1 



15660, 131 : POKE 15661, 



51 



POKE 15720, 131 



64 



171 



4475 POKE 15725, 170 : FOR I ■ 15704 TO 15896 STEP 

170 : NEXT : POKE 15769, 176 : POKE 15770, 152 
4480 POKE 15771, 140 : POKE 15772, 131 : POKE 15773 
15783, 181 : POKE 15789, 186 : POKE 15833, 176 : 
84 : POKE 15835, 188 „ ioi 

4485 POKE 15836, 179 : POKE 15837, 177 : POKE 15847, 181 

15849, 140 : POKE 15850, 134 : POKE 15853, 186 
4490 POKE 15851, 131 : POKE 15911, 181 : POKE 15912, 
15913, 140 : POKE 15914, 
76 : POKE 15581, 186 
4500 FOR I = 15663 TO 15791 



POKE I 



POKE 



POKE 15834, 1 



176 



POKE 



POKE 



134 : POKE 15915, 131 : POKE 15788, 1 



POKE 1+2, 131 



131 
83 

4505 POKE 15856, 179 
4510 RETURN 

4520 IF POS(0) + LEN(0(I 



STEP 
POKE I 



64 : 
+ 3, 



POKE 
171 



:, 151 
NEXT 



POKE I + 1, 
POKE 15855, 1 



POKE 15857, 179 
0)) 



12 AND 
: : RETURN 
RETURN 



: POKE 15858, 187 

J < 704 THEN J ■ J + 64 



PRINT@ J, 0(1, 0) ; " 
4530 PRINT 0(1, 0) ; " . 
4550 Nl = N(L, 1) 
4560 XI = LEN(Nl) 
4570 FOR X2 « 12 TO XI 
4580 IF MID$(N1, X2, 1) 
4590 M = LEFT$ (Nl, X2) 
4600 PRINT M; : J = 
4610 M = RIGHT$ (Nl, 
4620 PRINT@ J, M; : 
4630 RETURN 
4700 IF D(0, 2) = 1 

5666, 146 : RETURN 
4710 POKE 15539, 156 : POKE 15540, 140 : POKE 15541, 140 
15542, 140 : POKE 15543, 172 : POKE 15603, 149 : POKE 
70 : POKE 15667, 149 
4715 POKE 15671, 170 : POKE 15731, 149 
15795, 181 : POKE 15799, 186 : RETURN 

= TO 11 : IF D(I, 



<> CHR$(32) AND X2 <> XI THEN NEXT X2 



J + 64 
XI - X2) 
J = J + 64 

THEN I = 15541 



GOSUB 4400 



1 = 



POKE 15735, 170 



: POKE 1 

: POKE 
15607, 1 

POKE 



4800 
4810 
4820 
5000 
5010 
5020 
5030 
5040 



Dl = 
IF D(I, 
NEXT : 
IF Bl = 
IF B2 = 
IF B3 = 
IF B4 = 
IF B5 = 



: FOR I 
2) = 1 
RETURN 
THEN 
THEN 
THEN 
THEN 
THEN 



0) <> L THEN 4820 



THEN Dl = 1 



Bl 
B2 
B3 
B4 
B5 



RETURN 
RETURN 
RETURN 
RETURN 
RETURN 




86 BASIC Adventures 



Atlantean Odyssey 



Chapter Two 



Dog Star 



by Lance Micklus 



About the author and his program 



Lance Micklus is a professional programmer, 
magazine author and one of the most visible 
personalities in the microcomputer world. His ST- 
80 series telecommunications and Smart Terminal 
programs have set the standard for that portion of 
the industry. Lance's other interests include the 
operation of Lance Micklus Incorporated, of 
Burlington, Vermont, a lively and growing concern 
selling retail and wholesale computer software. 

Dog Star is Lance's only adventure in current 
production. Marketed by TSE/Softside, it is one of 
the longest running titles in their line. Even so, it still 
gives pleasure to new generations of adventurers. 



Notes: This program must be heavily compressed 
to fit into a 16K RAM computer. It will save and load 
"games in progresss" on disk or tape. 

Model III 16K RAM users will need to shorten 
some of the statements to make the program fit 
their machines. 



BASIC Adventures 87 



10 CLS : PRINT " 



DOG STAR ADVENTURE 
by Lance Micklus, 
Burlington, Vt. 05401 



RV = 16396 



36 OR LC = 37 THEN 160 

90 IF LC > 26 AND LC < 31 THEN 160 n 
100 PRINT "Holy smokes. An armed guard just walked in. 
110 GOSUB 2110 : IF VB <> 12 OR NO <> 15 THEN 1040 
120 X = 13 : GOSUB 2240 : IF Y <> - 1 THEN 1040 

130 IF BL = CLS : PRINT "I'm out of ammunition." : PRINT : GOT 
1050 

140 PRINT "zzZAP! No more guard." 

150 BL = BL - 1 : IF BL = PRINT "I'm out of ammunition." 
160 IF MD <> TC THEN 190 

170 X = 22 : GOSUB 2240 : IF Y <> - 1 THEN 190 
180 PRINT "Your McDonald's Hamburger is cold." 
190 GOSUB 2110 : TC = TC + 1 

200 IF VB = AND NO = THEN 210 ELSE 230 

210 PRINT "I don't know how to do that." : GOTO 60 

220 PRINT "Nothing happened." : GOTO 60 

230 IF VB > 1 OR NO > 7 THEN 360 

240 IF NO = THEN 210 

250 IF DS(LC, NO - 1) =0 PRINT "I can't go that way!" : GOTO 60 

260 IF DR AND DS(LC, NO - 1) > 2 AND DS(LC, NO - 1) < 6 PRINT "I 

can't go that way. Flight deck doors are open. 
NO AIR! ! ! " : GOTO 60 

270 IF NO = 3 AND LC = 31 AND NOT DJ PRINT M0$ : GOTO 60 

280 IF LC = 35 AND DS(LC, NO - 1) = 36 AND 0B(21, 1) <> PRINT 

"The robot won't let me through." : GOTO 60 
290 IF LC * 17 AND OB(13, 1) = 17 THEN 1040 
300 IF LC = 9 AND OB(5, 1) = 9 THEN 1040 
310 IF LC = 9 OR LC = 17 THEN HE$ (LC) = 
320 LC = DS(LC, NO - 1) 
330 IF LC = 34 THEN HE$ (LC) = "" 
340 IF LC = 26 THEN 2040 
350 GOTO 1820 
360 IF VB = 3 GOTO 1820 
370 IF VB <> 2 THEN 530 

380 IF NO = PRINT "I don't know what a "; CHR$(34); NO$(0); CH 

R$(34) ; " is." : GOTO 60 
390 IF CR > 5 PRINT "I can't carry any more. 
HINT: Drop something." : GOTO 60 



Copyright 1979" 

20 CLEAR 200 : RANDOM : DEFINT A - Z 
30 GOSUB 2280 

40 LC = 2 : SL = 64 : BL = 4 : GF = 50 : 
50 GOTO 1820 

60 IF TC < 25 OR RND(GF) <> 1 THEN 160 
70 IF TC = 300 THEN GF = 20 
80 IF LC < 3 OR LC = 9 OR LC = 26 OR LC = 



88 BASIC Adventures 



Dog Stat 



400 FOR I = 1 TO LO : IF OB(I, 0) = NOX THEN 410 ELSE NEXT I : G 
OTO 210 

410 IF OB(I, 1) = - 1 PRINT "I'm already carrying it." : GOTO 60 

420 IF OB(I, 1) <> LC PRINT "I don't see it." : GOTO 60 
430 IF NO <> 37 THEN 460 

440 X = 13 : GOSUB 2240 : IF Y <> - 1 PRINT "I don't have a bias 

ter to put it in." : GOTO 60 
450 BL = 4 : OB(I, 1) = : PRINT "My BLASTER'S reloaded." : FOR 

I = 1 TO 1 : NEXT I : GOTO 60 
460 IF NO = 15 OR NO = 25 OR NO = 34 PRINT "He looks pretty mean 

to me." : GOTO 60 
470 CR = CR + 1 : OB(I, 1) = - 1 : PRINT "O.K." : FOR I = 1 TO 1 

: NEXT I 

480 IF NO = 14 AND NOT CM PRINT "A voice says: "; CHR$(34); "SES 

AME"; CHR$(34); " . " : CM = - 1 
490 IF NO = 22 AND MD = THEN MD = TC + 50 
500 IF NO = 12 THEN HE$(2) = "" 
510 IF NO = 13 THEN HE$(7) = "" 
520 GOTO 60 

530 IF VB <> 4 THEN 580 
540 PRINT "I'm carrying:" 

550 K = : FOR I = 1 TO LO : IF OB(I, 1) = - 1 PRINT OB$(I) : K 
= 1 

560 NEXT I : IF K = PRINT "NOTHING" 
570 PRINT : GOTO 60 

580 IF VB <> 5 THEN 590 ELSE GOSUB 2200 : GOTO 60 
590 IF VB <> 6 THEN 670 
600 IF NO = THEN 380 

610 IF LC = 2 PRINT "There's no room here." : GOTO 60 

620 IC = : FOR I = 1 TO LO : IF OB(I r 1) = LC THEN IC = IC + 1 

630 NEXT I : IF IC > 12 PRINT "There not enough room. Get rid of 

something." : GOTO 60 
640 FOR I - TO LO : IF OB(I, 0) = NOX THEN 650 ELSE NEXT I : G 
OTO 210 

650 IF OB(I, 1) <> - 1 PRINT "I'm not carrying it." : GOTO 60 
660 CR = CR - 1 : OB (I, 1) = LC : PRINT "O.K." : FOR I = 1 TO 1 

: NEXT I : GOTO 60 
670 IF VB <> 7 THEN 690 

680 IF HE$(LC) = "" THEN PRINT "How am I supposed to know what t 

o do?" : GOTO 60 ELSE PRINT HE$ (LC) : GOTO 60 
690 IF VB <> 8 THEN 810 

700 IF NOT BT THEN 720 ELSE PRINT "Press (ENTER) when ready to : 

RECORD :" 
710 GOSUB 2260 : GOTO 740 

720 IF NO$(0) = "" PRINT "Try something like "; CHR$(34); VB$(0) 

; " filespec"; CHR$(34); "." : GOTO 60 
730 OPEN "0", 1, NO$(0) 
740 FOR I = TO LO 

750 IF BT THEN PRINT#-1, OB(I, 0), OB(I, 1), OB(I, 2) ELSE PRINT 

# 1, OB(I, 0); OB(I, 1); OB(I f 2) 
760 NEXT I 

770 IF BT PRINT#-1, TB , TC , CM : PRINT#-1, DR, BL, MD : PRINT#-1 
, GF, DJ, CR : PRINT#-1, LC 



Dog Star 



BASIC Adventures 89 



780 IF NOT BT PRINT# 1, TB; TC; CM; DR; BL; MD; GF; DJ; CR; LC 
790 IF NOT BT CLOSE 
800 PRINT "O.K." : GOTO 60 
810 IF VB <> 9 THEN 930 

820 IF NOT BT THEN 840 ELSE PRINT "Press (ENTER) when ready to * 

READ TAPE *" 
830 GOSUB 2260 : GOTO 860 
840 IF NO$(0) = THEN 720 
850 OPEN "I", 1, NO$(0) 
860 FOR I = TO LO 

870 IF BT THEN INPUT#-1, B(I, 0), OB(I, 1), OB(I, 2) ELSE INPUT 

# 1, OB(I, 0), OB(I, 1), OB(I, 2) 
880 NEXT I 

890 IF BT INPUT#-1, TB, TC, CM : INPUT#-1, DR, BL , MD : INPUT*-! 
/ GF, DJ, CR : INPUT#-1, LC 

111 IF NOT BT CLOsT «! ™' "°' ° F ' ° J ' LC 

920 GOTO 1820 

III 11 X! ° 10 THEN 940 ELSE CLS : J = : GOTO 1980 

940 IF VB <> 11 THEN 1080 

950 IF NO <> 10 THEN 210 

111 rl r L r °t? ?* D LC ° 11 PRINT " Wnat button," : GOTO 60 

III rl \r = \\ ™° N ° T TB THEN TB = " 1 : PRINT N2$ : GOTO 60 

Qoa I ?o = U AND TB THEN TB = : PRINT ^3$ : GOTO 60 

990 X = 12 : GOSUB 2240 : IF Y <> 1 THEN 220 

1000 X = 24 : GOSUB 2240 : IF Y <> 1 THEN 220 
1010 IF NOT TB PRINT N3$ : GOTO 220 
1020 IF NOT DR PRINT N4$ : GOTO 220 
1030 GOTO 1970 

1040 CLS : PRINT "HELP] • I " : print 

ISIS PR^N? "I?m h now° ldierS eve ^ere. I've been captured." 

iwbfcj PRINT I m now a prisoner. Woe is me... 

1070 GOTO 2010 

1080 IF VB <> 12 OR NO = THEN 1180 

10 O?O X 60 BL = PRINT " BUt 1 d ° n,t have ammunition left." : G 

1100 X = 13 : GOSUB 2240 : IF Y <> - 1 PRINT -ft,,* t*« 

ng a BLASTER." : GOTO 60 Ut 1 m not ca "yi 

1110 X = NO : GOSUB 2240 : IF Y = - 1 ddtmt m t 

g it." : GOTO 60 RINT 1 can, t. I'm holdin 

1120 IF NO = 34 PRINT "zzZAPi" • BL - Rf 1 „ 
1130 IF Y <> LC PRINT "I don't see it." GOTO 60 ° ^ 

G o™ R 2lV 1 T ° L ° ! IF °> = iox-T^lfS. ELSE NEXT I : 

" 5 : "Wckr^. t Sri^ M 1 : next 1 ; pri - -^n, t 

1160 BL = BL - 1 : IF BL = PRINT "T'm o„<- c 
1170 GOTO 60 1 m out of ammunition." 

1180 IF VB <> 13 THEN 1260 

1200 X = 14 : GOSUB 2240 

1210 IF Y <> - 1 OR NO <> 19 PRINT "0 K « 

1220 IF DR GOTO 220 * '* ^0$ (NO) : GOTO 60 



90 BASIC Adventures 



Dog Star 



1230 DR = - 1 : PRINT "A voice comes over the P. A. system and sa 
ys : 

OPENING FLIGHT DECK DOORS 
n 

1240 IF LC > 2 AND LC < 6 PRINT " 

YipesMJ There's no air!!! CROAK..." : END 

1250 GOTO 60 

1260 IF VB <> 14 THEN 1430 

1270 IF NO <> 20 AND NO <> 16 AND NO <> 11 AND NO <> 33 THEN 210 

1280 IF NO = 20 THEN 1370 
1290 IF NO <> 16 THEN 1330 

13 GOTO F 60 B(6f ^ = " 1 ?RINT " Sorry - V * not a cartographer." : 

1310 IF OB (6, 1) = LC PRINT "Try GET MAP." : GOTO 60 
1320 PRINT "It's not here." : GOTO 60 

1330 X = NO : GOSUB 2240 : IF Y <> LC AND Y <> - 1 THEN 1320 
1340 IF NO = 11 PRINT "It says: >> NEEDS TURBO <<" 
1350 IF NO = 33 PRINT "It says: >> OUT OF ORDER <<" 
1360 GOTO 60 

1370 IF LC <> 13 PRINT "I don't see any." : GOTO 60 

1380 PRINT : PRINT "It says on the wall," 

1390 PRINT ">> YOUR MOTHER'S GOT A BIG NOSE <<" 

1400 PRINT ">> KILROY MADE IT HERE, TOO <<" 

1410 PRINT ">> SAY SECURITY <<" 

1420 GOTO 60 

1430 IF VB <> 15 THEN 1500 

1440 IF NO = PRINT "What's a "; NO$(0); "?" : GOTO 60 
1450 IF NO <> 22 PRINT "Don't be ridiculous." : GOTO 60 

146 « X ™ L G0SUB 2240 : IF Y <> - 1 PRINT "I'm not holding it 
• : gu ro b 

1470 FOR I = 1 TO LO : IF 0B(I, 0) = 22 THEN 1480 ELSE NEXT I : 

PRINT "I don't know where it is." : GOTO 60 
1480 OB (I, 1) = j print "Chump - Chump. Hummm, good." 
1490 FOR I = 1 TO 1 : NEXT I : GOTO 60 
1500 IF VB <> 16 OR NO <> 23 OR LC <> 16 THEN 1540 
1510 X = 23 : GOSUB 2240 : IF Y <> - 1 PRINT Ml$ : GOTO 60 

1530 GOTO 1 60 1) = : ° B(14 ' l) = 16 1 CR = CR " 1 ! PRINT M2$ 
1540 IF VB <> 18 OR NO <> 36 THEN 1580 
1550 IF NO <> 36 OR LC <> 31 THEN 210 

\lna ~J2.il G0SUB 2240 * X * Y ° ~ 1 PRINT M 3$ : GOTO 60 

1570 HE$(31) = "" : DJ = - 1 : PRINT M4$ : GOTO 60 

1580 IF VB <> 19 OR NO = THEN 1690 

1590 IF NO <> 34 PRINT "That's stupid!" : GOTO 60 

1600 IF LC <> 35 PRINT M5$ : GOTO 60 

1610 X = 22 : GOSUB 2240 : IF Y <> - 1 PRINT M6$ : GOTO 60 

1620 IF NO - 35 PRINT M7$ : GOTO 60 

1630 IF NO <> 34 PRINT NO$(0); M8$ : GOTO 60 

1640 IF TC > MD PRINT M9$ : GOTO 60 

^L!^ 1 * 1 T ° L0 : IF 06 (I ' > = 34 THEN ^60 ELSE NEXT I : 
GOTO 210 

16 py<rV ^nnl ? 1 = 1 T ° L ° : IF ° B(I ' 0) = 22 THEN 1670 ELSE N 
EXT I : GOTO 210 

1670 PRINT N0$ : HE$(35) = 



Dog Star 



BASIC Adventures 91 



_ _ * — . a . FOR I » 1 TO 1 : NEXT I : GOT 

1680 OB(K, 1) = : OB(I, 1 ) =0 FOR 

60 

1690 IF VB <> 17 THEN 1710 
1700 PRINT NO$(0) : GOTO 60 
1710 IF VB <> 20 THEN 1800 

1720 IF NO = THEN 210 carrying it. Th 

1730 X = NO : GOSUB 2240 : IF Y - - 1 PR1N* i J v 

at's impossible." : GOTO 60 
1740 IF Y = LC THEN 1770 _ 210 

1750 IF NO < 11 OR NO = 19 OR NO = 20 OR NO » 30 THEN 210 
1760 PRINT "I can't hit something I can't see. . ^uiu DW 
1770 IF NO =15 OR NO = 25 OR NO = 34 PRINT "I'd rather not. He 

might hit me back!" : GOTO 60 
1780 IF NO = 35 PRINT "That's not nice!" : GOTO b0 

[III IF T VB 2 <> 21 THEN 1810 ELSE PRINT "I'm not strong enough to 

kill anything." : GOTO 60 
1810 GOTO 210 

1820 CLS : PRINT DS$(LC) : A$ = "" 
1830 IF LC = 35 THEN GF = 10 
t&4-0 IF LC = 7 THEN 1900 

1850 K = : FOR I = 1 TO LO : IF OB(I, D <> LC THEN 1880 
1860 IF K = THEN K = 1 : PRINT : PRINT "Around me I see: : A$ 
= OB$(I) : GOTO 1880 _ , 

1870 IF LEN ( A$ ) + 5 + LEN(OB$(I)) > SL THEN PRINT A$ : A$ = OB$ ( 

I) ELSE A$ = A$ + " " + OB$(I) 

1880 NEXT I 

1890 IF A$ <> "" PRINT A$ 

1900 PRINT : PRINT "Obvious directions are "; : K - 
1910 FOR I = TO 5 : IF DS(LC, I) = THEN 1940 
1920 IF K <> PRINT ", "; 
1930 PRINT NO$(I + 1); : K = 1 
1940 NEXT I 

1950 IF K = PRINT "unknown"; 
1960 PRINT "." : GOTO 60 
1970 CLS : GOSUB 2200 

1980 IF J = PRINT "We have FAILED our mission. 
The forces of Princess Leya will be conquered. 

1990 IF J = SC PRINT "We are HEROES. 

The forces of Princess Leya will conquer the evil Roche 
soldiers, and freedom will prevail throughout the galaxy, 
n 

2000 IF J > AND J < SC PRINT "We have helped the forces of Pri 

ncess Leya defend the 
galaxy. Long live the forces of freedom! 
ii 

2010 PRINT 

2020 INPUT "Do you want to play again (Y or N) " ; A$ : A$ ■ LEFT$ 
(A$, 1) 

2030 IF A$ = " Y" THEN 20 ELSE END 

2040 CLS : PRINT "A voice booms out, "; CHR$(34); "WHO GOES THER 

E"; CHR$(34) 
2050 GOSUB 2110 



92 BASIC Adventures 



Dog Sta 



2060 IF VB <> 13 OR NO <> 30 THEN 1040 
2070 PRINT Nl$ 

\\\l f ^l^GOSUB 2240 : IF Y <> - 1 THEN 1040 

IF Vb'o 17 OR NO <> 31 ™EN 1040 ELSE 1820 LINEINPUT "Wh 
2110 IF BT THEN INPUT "What should I do ; CM$ ELSL Liwciwr 
at should I do? "; CM$ 



NO$(0) - 



2120 VB$(0) = 

RETURN 
2130 FOR ZL = 1 TO LEN (CM$ ) 
$(0) = VB$(0) 



VB = : NO = : IF LEN (CM$ ) ■ 



THEN VB 



IF MID$(CM$, ZL, 1) <> " 

, ^ MI lv $ . (C i $ f'v Z b$(zl) <> N -» T and LEFT$(VB$<0), LEN(V 
^B$ (ZL^) ^ = = VB$^ZL)* THEN VB = ZL : GOTO 2160 ELSE NEXT ZL 

Willi ^£M\\^V*»\™™™ - • - — ELSE N0 

"SdS) T'-^t^^T^^m 219. BLSE NEXT ZL 



: NEXT ZL 
1 TO LO : 



: RETURN 
IF OB(I, 1) = 1 



THEN J = J + OB(I 
"points, you have 



= OB(ZL, 1) 



GO 



2180 NO = : RETURN 
2190 FOR ZL = 1 TO 1 
2200 J = : FOR I = - 

2210 NEXT I : PRINT "Out of a maximum of"; SC; 

"; J; "points." . » 

2220 IF J = PRINT "We're not doing too good. 

2230 RETURN ^ a\ - y thfn Y 

2240 FOR ZL = TO LO : IF OB(ZL, 0) RETURN 
TO 2250 ELSE NEXT ZL : Y = - 99 : RETURN 
2250 FOR ZL = 1 TO 1 : NEXT ZL : RETURN 

2270 I $ F INKEy1 Y = " THEN 2270 ELSE RETURN 

2290 TROFfTiF PEEK(I6396) = 201 THEN BT = - 1 ELSE BT = 
" 00 LV = '-£5 na^, = »OET» : VB $ (3, - "LOOK" 



"PRESS 
"READ"- 
"SHOW" 
"HIT" 



2310 VB$(1) = 
2320 VB$(4) = "INVEN" 
2330 VB$(7) = "HELP" 

0) « "QUIT" 
2340 VB$(11) = 
2350 VB$(14) = 
2360 VB$(17) = 
2370 VB$(20) •- 
2380 LN - 37 
2390 NO$(l) = "NORTH" 
2400 NO$(4) = "WEST" 
2410 NO$(10) 
2420 NO$(13) 

"GUARD" 
2430 NO$(16) 
2440 NO$(19) 
2450 NO$(21) 
2460 NO$(23) 
2470 NO$(25) 
2480 NO$(27) 



: VB$(13) = "SAY" 
VB$(16) = "CSAVE" 
VB$(19) * "FEED" 



: VB$(12) = "SHOOT' 

VB$(15) = "EAT" : 
: VB$(18) = "OPEN" 
VB$(21) = "KILL" 

DIM NO$(LN) M ncti\ "QmiTH" 

• NO$(2) = "EAST" : NO$(3) - SOUIH 
*NO$(5) - "UP" : NO$(6) = "DOWN" 
PTON" : N0$(1D = "TAG" : NO$(12) = "FUEL" 
4lIs?ER" : NO$(14) = "COMMUNICATOR" : 



"MAP" : 
"SESAME 
"CAPE" 
"TAPE" 
"SCIENTIST" 



NO$(17) = "KEYS" : NO$(18) 
: NO$(20) = "GRAFFITI" 
NO$(22) = "HAMBURGER" 
NO$(24) = "TURBO" 

NO$(26) = "PLANS" 



NO$(15) = 



= "NECKLACE" 



= "SCHEMATIC 



NO$(28) = "DEVICE' 



NO$(29) = "GUN 



Dog Star 



BASIC Adventures 93 



2490 NO$(30) = "SECURITY" : N0$(31) = "I.D." : NO$(32) - "CRYSTA 
LS" 

2500 NO$(33) = "SIGN" : NO$(34) = "ROBOT" : NO$(35) = "PRINCESS" 

2510 NO$(36) = "DOOR" : NO$(37) = "AMMUNITION" 
2520 CL = 37 : DIM DS$ (CL) 

2530 DS$(1) = "I'm in the passenger & storage compartment of my 

space ship. 
There's an exit here to leave the ship," 
2540 DATA 2, 0, 0, 0, r 3 

2550 DS$(2) = "I'm in the cockpit of my space ship. 
A large red button says >> PRESS TO BLAST OFF <<" 
2560 DATA 0, 0, 1, 0, 0, 

2570 DS$(3) = "I'm standing next to my space ship which is locat 

ed on a 
huge flight deck." 
2580 DATA 18, f 4, 0, 1, 

2590 DS$(4) = "I'm out on the flight deck of General Doom's Batt 

le Cruiser." 
2600 DATA 3, 5 f 4, 4, 0, 

2610 DS$(5) = DS$(4) : DATA 4, 6, 5, 4, 0, 

2620 DS$(6) = "I'm in a hallway. There are doors on all sides. 

The door to the north says: >> CLOSED FOR THE DAY <<" 

2630 DATA 7, 0, 8, 5, 0, 

2640 DS$(7) = "I'm in the SUPPLY DEPOT. 

Around me I see: 

all kinds of things" 

2650 DATA 0, 0, 6, f 0, 

2660 DS$(8) = "I'm at the end of one of the hallways. 
I can hear voices nearby. Sounds like guards." 
2670 DATA 6, 10, 0, 9 f 0, 12 

2680 DS$(9) = "I'm in the STRATEGY PLANNING room." : DATA 11, 8, 
0, 0, 0, 

2690 DS$(10) = "I'm in the DECONTAMINATION area." : DATA f 14, 
0, 8, 0, 

2700 DS$(11) = "This area is the tractor beam control room. 
A large sign warns: >> DO NOT PRESS ANY BUTTONS <<" 
2710 DATA 0, 0, 9, 0, 0, 

2720 DS$(12) = "I'm in another hallway. To the EAST is a restroo 
m." 

2730 DATA 15, 13, 0, 0, 8, 

2740 DS$(13) = "This is what is commonly called on Earth, the BA 
THROOM. 

There's graffiti written all over the wall. 
Pipes lead up through the ceiling." 
2750 DATA 15, 0, 0, 12, 27, 

2760 DS$(14) = "This appears to be an interrogation room." : DAT 

A 0, 0, 0, 10, 0, 
2770 DS$(15) = "I'm in a LOUNGE." : DATA 0, 0, 13, 12, 0, 
2780 DS$(16) = "This is a computer room. There's a TRS-80 in her 

e. 

On the screen it says: >> CSAVE TAPE <<" : DATA 17, 0, 18, 0, 




94 BASIC Adventures 



Dog Star 



2790 DS$(17) = "I'm in a testing labortory." : DATA 0, 0, 16, 0, 
0, 

9800 DS$(18) = "I'm in a hallway. 

A large arrow points EAST and says: » TO THE VAULT «" 

2820 DsI(195'= 2 «This is'the entrance to the DEVELOPMENT LAB SECT 

ION" : DATA 20, 18, 21, 20, 22, 

2830 DS$(20) = "I'm in a long corridor. There are laboratories a 

11 around me." : DATA 19, 23, 21, 20, 22 , 24 

2840 DS$(21) = "I'm in a research lab." : DATA 20, 0, 0, 0r 0, 

2850 DS$(22) = "I'm lost!" : DATA 22, 22, 22, 22, 22, 20 
2860 DS$(23) = DS$(21) : DATA 0, 0, 0, 20, 0, 
2870 DS$(24) = DS$(21) : DATA 0, 0, 0, 0, 20, 
2880 DS$(25) = "I'm near the entrance to the vault. 
A sign here says: » AUTHORIZED PERSONNEL ONLY «" 
2890 DATA 0, 26, 0, 18, 0, 

2900 DS$(26) = "I'm in the vault." : DATA 0, 0, f 25, 0, 
2910 DS$(27) = "I'm in a pipe tunnel which leads in every direct 

ion." : DATA 28, 27, 27, 27, 27, 13 
2920 DS$(28) = DS$(27) : DATA 29, 29, 29, 29, 30, 29 
2930 DS$(29) = "I'm lost in a maze of pipes. : DATA 28, 29, ^y, 

29, 29, 27 
2940 DS$(30) = "I'm in the pipe maze. 
Below me I think I can see the jail." 
2950 DATA 29, 29, 28, 29, 29, 31 
2960 DS$(31) = "I'm in the jail." 

2980 ^(3 3 2 )'. 3 'i'« 4 I n 3 a'jah ceU.'« = data 0, 0, 31, 0, 0, 

2990 DS$(33) = DS$(32) : DATA 0, 0, 0, 31, 0, 

3000 DS$(34) = DS$(32) : DATA 31, 0, 0, 0/ 0/ 

3010 DS$(35) = "I'm at the security desk. 

To the north an elevator." : DATA 36, 31, 0, 0, 0, : ;; 

3020 DS$(36) = "I'm in the elevator." : DATA 0, 0, 35, 0, 3/, * 

3030 DS$(37) = DS$(36) : DATA 0, 0, 14, 0, 0, 36 

"". "^IficL says: » NEEDS TURBO «" : DATA U. 5 



3060 0B$(2) = "Anti-matter FUEL" : DATA 12, 5, 5 

3070 0B$(3) = "BLASTER" : DATA 13, 7, 

3080 0B$(4) = "COMMUNICATOR" : DATA 14, 9, 

3090 0B$(5) = "A very surprised GUARD" : DATA 15, 9, 

3100 0B$(6) = "MAP of the ship" : DATA 16, 29, 20 

3110 0B$(7) = "Some KEYS" : DATA 17, 9, 

3120 0B$(8) = "A shinestone NECKLACE" : DATA 18, 10, 20 

3130 0B$(9) = "Princess Leya's CAPE" : DATA 21, 14, 5 

3140 OB$(10) = "McDonald's HAMBURGER" : DATA 22, 15, 

3150 0B$(11) = "A cassette TAPE" : DATA 23, 7, 

3160 0B$(12) = "A TURBOENCABULATOR" : DATA 24, 17, 5 

3170 0B$ 13 = "An evil looking SCIENTIST" : DATA 25, 17, 

3180 OB$(14) = "Secret attack PLANS;' : DATA 26, 0, 20 

3190 0B$(15) = "Death Ray SCHEMATIC" : DATA 27, 9, 20 

3200 OB$(16) = "Cloaking DEVICE" : DATA 28, 17, 20 

3210 OB$(17) = "Micro Laser GUN" : DATA 29, 24, 20 



Dog Star 



BASIC Adventures 95 



lola ° B$(18) = HI - D - ca ^« : DATA 31, 17, 

.3230 0B$(19) = "Malidium CRYSTALS (the Treasury!)" : DATA 32, 26 
, 30 

3240 OB$(20) = "A SIGN which says: >> OUT OF ORDER <<" : DATA 33 
r 3,0 

3250 08$ (21) = "Attack ROBOT" : DATA 34, 35, 

3260 OB$(22) = "PRINCESS Leya" : DATA 35, 34, 50 

3270 OB$(23) = "AMMUNITION" : DATA 37, 7, 

3280 DIM DS(CL, 5) : RESTORE 

3290 FOR ZL = 1 TO CL : FOR ZD = TO 5 

3300 READ DS(ZL, ZD) : NEXT ZD : NEXT ZL 

3310 DIM OB(LO, 2) 

33 EXT F ZL ^ = 1 T ° L ° : READ ° B(ZL ' 0) ' ° B(ZL ' X) ' 0B(ZL ' 2 ) : N 
3330 DIM HE$(CL) 

3350 nlVill = ll thi ^ k W ?' re su PP° se to lea ve the stuff here." 
^sS ulVinl = I wonder lf we have enough fuel?" 
3360 HE$(7) = "How 'bout a BLASTER." 
3370 HE$(9) = "Try SHOOT GUARD." 

33Q0 2S!!n! = II* might be intersting to read the graffiti." 
3390 HE$(17) = "Try SHOOT SCIENTIST." 

3400 HE$(22) = "I'm as confused as you are." : HE$(29) = HE$(22) 

34 cked E DOORS." mi9ht h6lP ^ We had S ° me ke * S to 0PEN lo 

Wll M«! (35 i' = " Did yoU bring ^ything to eat?" 
3^40 Zt = -r. Can ' 9 ° th6re - Th * do °' is locked." 
M = 111* H 0t carr y^ any blank tape." 
it prfnLdf 6 "corded something*™ the tape, and then 

>> ATTACK PLANS — VERY SECRET «" 
3460 M3$ = "I can't. I'm not carryinq anv kev* 

There's no robot here." 

3500 Til = "r^ 1 d ° n,t have an * hambergers." 
3500 M7$ = "Chump... chump BURP« 

l510 P Mft? CeS « y ° U for a delicious meal." 

It = doesn't eat hamburger." 

till N0$ = = «T h e th ^Lc k aP ?o e b n o e t-ea T ts e thTha'T iS ^ ^ 

roDot eats the hamburger and disappears." 

3540 Nl$ = »i'm at the identification terminal 
On the screen it says: » SHOW I.D. << r rmlnal - 
3550 N2$ = "The tractor beam is off » 
3560 N3$ = "The tractor beam U onf" 

Ull ReIurn"" " f ° rg0t t0 ° Pen the »*9ht deck doors." 




Dog Star 



Chapter Three 



Thunder Road 



by Don & Freda Boner 
About the authors and the program 



Don and Freda Boner are a father-daughter team 
from Indianapolis, Indiana. Their first adventure, 
Thunder Road, was a commercial success as was 
Deadly Dungeon, both being published under The 
Programmer's Guild label. 

The Boners have been cracking the books in an 
effort to learn the Z-80 machine language required 
as a naturally progressive step toward more and 
better adventures. 

Revenge of the Balrog and Fortress at Times-End 
are scheduled for release in 1981 as a double 
adventure on tape. These two adventures are 
loosely based on the Graylock Chronicles series 
which began with Teri Li's Spider Mountain, and 
was continued with their own Deadly Dungeon. 

Note as you enter the code for the Boner 
adventures, the subtle differences in coding 
technique, and the departure from other styles of 
adventure writing as the authors become more 
sophisticated in BASIC. 

Note: The save game routines for Thunder Road 
are for tape only. Disk routines may be added by 
modifying lines 1070 to 1110 and 1190 to 1230. 




BASIC Adventures 97 



10 „^ E 16553 ' 255 : CLEAR 400 : CLS : PRINT CHR$(23) : A$ = »th 
UNDER ROAD ADVENTURE" 

20 r> B f>, = " BY D0N & FREDA BONER " : FOR I = 64 TO 448 STP 

P 64 : PRINT@ I - 64, " " 

30 PRINTS I, A$; : PRINTS 960 - I, B$ : FOR J = 1 TO 50 : NEXT J 
t I 

40 DEFINT A - Z : DEFSTR M : M0 = "NO YOU DIP STICK. " : Ml = " D 

So T B ? FU1 ? NY * " : M2 = "I SEE NOTHING UNUSUAL HERE. ■ 

\«T*na °? N BE RIDICUL OUS. ■ : M5 = "YOU MIGHT TRY EXAMINING 

R^nr^DMMM.nV "° KAY - ' : M7 = "WHAT DO I KNOW... I'M JUST A 
RIDGE RUNNER." : GOTO 1880 * a 

60 GOSUB 200 : GOSUB 100 

70 IF CP = 7 OR CP = 10 THEN LX = LX + 1 
80 IF CP = 4 THEN HX = HX + 1 
90 GOTO 350 

100 T = T + 1 : PRINT@ 960, " « . CHR$f94^. « what dun nr * 

I DO"; : INPUT CM$ ' LHR * (y4 )' WHAT SHOULD 

110 VB$ = "" : NO$ = " " : VB = : NO = 

120 LC - LEN(CM$) : FOR I = 1 TO LC : A$ = MID$(CM$, I, 1) rp 
A$ <> • THEN VB$ = VB$ + A$ • NEXT I 1 ' 

122 mL LEN(VB$) + 1 >= L.EN (CM$ ) ^HEN NO = : GOTO 150 
140 NO$ = RIGHT$(CM$, LC - I) 

150 Nl$ = NO$ : Vl$ = VB$ : VB$ = LEFT$ ( VB$ , 3) : NO$ = LEFTS nan 

U else S&'xYvbVJ - IF VB$ = ™<^4*R X i* GOTO 1 

160 IF Nl$ = »"NO$ = VB$ 
170 VB = : GOTO 190 

180 IF VB$ = CM$ THEN = : NO$ = . rptiirm 

200 PRINTS C Hg (30) , ; print : PRINT , print , PRINT : PRINT : 

E N( P$(C P)-) 1 ! I L n $ il $ i C r ) :' GOTO = 22 THEN P$ = "««(W(«) f L 
210 P$ = -i»m " + P$(CP) 

220 PRINTS 64, P$ " " . k = a . pod t i m ~ 

CP THEN 260 • K - . FOR I = 1 TO LO : IF OB(I, 0) <> 

230 IF K = THEN PRINT : PRINT "VISIBLE ITEMS- 

260 NEXT I : IF K > THEN PRINT 
270 IF CP = 29 THEN 3090 

|J C H P -^^^R^P^^^^L^^^^RIN 1 ^?^"!;^ 2 ° R « 
N fKxwi biKING$(63, 140) : RETUR 

290 K = : PRINT : PRINT "OBVIOUS FXTtq ad* . 

3 : IF P(CP, I) = THEN 320 TS ARE: ' ! ™R I = T0 

300 IF K > PRINT ", 
310 PRINT D$ (I) ; : k = K + 1 
320 NEXT I : PRINT "." 

330 IF CP = 6 OR CP = 26 OR CP = 35 OR CP • « An , 

= 21 OR CP = 26 OR CP = 27 THEN 3040 36 ° R CP = 32 0R CP 

Ml t^Sv ST ? ING $(63, 140) : RETURN 
350 IF HX = 1 GOTO 3040 
360 LET XX = 20 



98 BASIC Adventures 

Thunder Road 



1 *7 fK 

3/0 


T P 


NO 





21 THEN NO 


= NO - XX 


380 


T 1? 


ian 

IN \J 




22 THEN NO 


= NO - XX 


390 


IF 


NO 


s 


23 THEN NO 


= NO - XX 


400 


IF 


NO 




24 THEN NO 


= NO - XX 


410 


IF 


CP 




7 AND LX ■ 


5 THEN 3040 


420 


IF 


CP 




10 AND LX = 


• 10 THEN 3040 

■ can CCa £ 



j^^r^e 1 ^ s& ufeiWSi 1770 ' 

iS g VB S B !b 4 "i1 OR VB = 12 0* VB = 13 OR VB - 14 THE, 

470 8 PRINT "I NEVER LEARNED HOW TO -VIS " SOMETHING" : GOTO 60 
480 IF NO =0 PRINT "I NEED A DIRECTION" : GOTO 60 

ill 11 li ?2\llTo V 4 : AN°D T 0B??, 0) <> - 1 P*I« " X THINK YOU 
51i 8 ?S U S ^YaND^^ <> T - "BUT I'M NOT IN THE CAR" 

: GOTO 60 

530 IF CP N > 7 THEN 540 : PRINT "DEPUTY HARDLEY HAS A ROAD BLOCK 

54 S E IF UP P"(C;, G °NO? t\ ^ I^oi f^OTO^ 

550 PRINT "OKAY, I WENT "D$(NO)"." : CP - P<CP, nu; 

560 PRINT M0 : GOTO 60 

Si Fs "i as Sii: 8 <><i™^m^^. 

600 IF NO = 6 AND CP = 2 AND 0B(1, 0) <> - 1 PRM* -CP 1 . 
610 GO IF°NO = 8 AND CP = 7 PRINT Ml" MAYBE YOU SHOULD QUIT NOW" : 

620Tf NO = 9 AND 0B(1, 0) <> - 1 AND CP = 16 PRINT «6 : OB(20, 

0) = • CP = 17 : GOTO 60 
III 11 %Z U P Z?lo»i i4°OR 1 NO i r 7 "0R N0 G H 8 6 PRINT Ml : GOTO 
650 PRINT M3" I DON'T KNOW HOW TO DO THAT" : GOTO 60 
670 IF TO NO 67 = 7 AND CP = 1 PRINT M6 : 0B(3, 0) = " 1 : GOTO 60 
6 6 8 90 IF = N0 Z = 25'aND CP = 10 AND 0B(1, 0) = CP PRINT M6 : 0B(14, 

720-IF CP T - 55 AND NO = 11 PRINT M6 : 0B(21, 0) = " £ ^61 
730 IF CP = 22 AND 0B(28, 0) = CP AND NO = 15 PRINT M6 : 0B(28, 

74 0> I = F CP 1 = ! 24°InD 6 OB(27, 0) = CP AND NO = 16 PRINT «0" -TRY FIG 

750 T P 6 RINt""YOU O NITW IT- WHAT WOULD I DO WITH IT" : GOTO 60 

770 IF T CP 77 = 2 AND NO = 6 PRINT M6" I THINK THERE IS SOMETHING TH 
ERE" : GOTO 60 



Thunder Road 



BASIC Adventures 99 



780 IF CP = 2 AND NO = 5 PRINT M0" IT IS JUST A SOUPED-UP CAR!" 
: GOTO 60 

790 IF CP = 10 AND NO = 5 GOTO 810 : GOTO 60 

800 IF NO = 8 OR NO = 16 OR NO = 20 PRINT M3 : GOTO 60 

L N ° = 5 AND CP = 10 AND 06 ) " CP THEN PRINT "IT HAS T 
WO FLAT TIRES " : GOTO 60 

820 IF NO = 5 AND CP = 10 AND OB(l, 0) = - 1 PRINT M7 : GOSUB 30 
sua rl INT " CLUE ** I SHOULD EXIT THE CAR" : GOTO 60 
aj0 IF NO = 12 PRINT M6" SHE IS A REAL KNOCK'OUT " : GOSUB 3030 
: PRINT "SHOULD I PICK HER UP***" : GOTO 60 

lil tI 2n = n 4 PRINT " THAT * LADY IS A KNOCK-OUT" : GOTO 60 
850 IF NO = 9 AND CP = 15 PRINT M6" I NEED TO BE CLOSER" : GOTO 
6 

86 Q H ^,n°^ 9 AN ° CP = 16 AND 0B ^' > <> " 1 PR INT M6" MAYBE I 
SHOULD GO INSIDE : GOTO 60 

lla }l »Z = 11 PRINT "^"SOMETHING IS INSIDE IT" : GOTO 60 

FORTUNE%- : R GOTO M 60 MAY6E 1 SH0UL ° BREAK " ° PEN AN ° READ ™ 

III " NO - 11 np D „n P = 1R 17 PRINT M6 = ° B(21 ' •> ' <** GOTO 60 
M2: GOTO 60 = N ° = 14 ° R N ° = 18 ° R N0 = 26 PRINT 

910 . I rr>cL = ^L AND N ° = 13 PRINT M6 ° 1 THINK SOMETHING IS THERE" 
^ GOSUB 3030 i PRINT "AN OLD ROAD BEHIND THE TREES 1 " s GOTO 6 

930 IF CP - 11 A p D ™° t£ PRINT M0 " TRY READING IT" : GOTO 60 

" : GOTO~60 = AN ° N ° = 28 PRIN? M2 "" TRY READING IT 

940 PRINT M2 : GOTO 60 
950 GOTO 960 

111 rl 1° °o 8 PRINT M1 " IT 'S BEYOND MY POWER » : GOTO 60 
97 IhJne.«°: = GOTO N 60 OB(1 ' « 1 PRINT M3 " «™ "oStmE MOON- 

lll PRINT M = l 8 : P G R OT N S Z ' ^ °> = " ^ CP = 8 : G0T 60 

? F GOTO = 60 3 ° R CP = 9 ° R CP " 12 ° R CP = 25 OR CP = 31 PRINT 

rl rl = k ° R CP = 2 PRINT M5 ! GOTO 60 
"arE^ TO 7 .^ II I iriollZ DEPUT *" S RO^O— BLOCKS 

"o'oS OUT = OF THE N RAIN" P « IT GOTO R 60 E,f ^ HAVE ™™ »** * 

"tHE^TO sL^AT^s'wRONG.-^GrL"^" ™™ *™ 

1050 IF VB = 10 GOTO 1130 

1060 INPUT "DO YOU REALLY WANT TO QUIT NOW" • y<5 to r 

) = "Y" THEN 1820 ELSE PRINT "I DIDN 'T THINK <5n" rHJ $ J X$ ' 1 

1070 CLS : INPUT "PRESS ENTER WHEN READY" ^YY -pre' G ° T ° ™ 

(23) : PRINTS 394, " S A V IN G " ' CLS : PRINT CHR$ 

1080 FOR I = 1 TO LO : IF OB$(I) = »« THE N ii flfl 

1090 PRINT#-1, 06(1, 0), OB(I 1) U0 ° 

1100 NEXT I 

1110 PRINT#-1, CP, ZZ, T 
1120 CLS : GOTO 60 

1130 IF CP = 10 AND 0B(1, 0) <> - 1 print m<; 

T " . LIKE THE CAR" : GOTO 60 ! G ° SUB 3030 : PRIN 



100 BASIC Adventures 



Thunder Road 



1140 IF CP = 22 AND OB(l, 0) = - 1 PRINT "GET OUT OF THE CAR" : 
,150 T IF 6 CP = 22 AND OB(l. 0) <> - 1 PRINT " WHAT YOU NEED IS A G 

XT : GOTO 

1170 IF CP = 37 PRINT M7 : GOSUB 3030 : PRINT " JUMP IT?" : GOTO 
60 

CLS"! INPUT G " T °PRESS ENTER WHEN READY"; YY : CLS : PRINT CHR 
$(23) : PRINTS 394, "LOADING" 
1200 FOR 1=1 TO LO : IF OB$(I) = "" THEN 1220 
1210 INPUT#-1, OB(I, 0), OB(I, 1) 
1220 NEXT I 

1230 INPUT#-1, CP, ZZ, T 

1240 CLS : GOTO 60 _ c „ . n atr 

1250 SC = : FOR I = 1 TO LO : IF OB(I, 0) = - ISC = SC + OB(I, 

126^ NEXT I : PRINT M7 : PRINT "YOU MAKE IT OR YOU DON'T" : GOSU 

1270 30 PR INT "WELL..." : GOSUB 3030 : PRINT" YOU HAVE HAVE "SCjJP 
OINTS --" • PRINT-BUT YOU LOSE THEM IF YOU QUIT! --" I PRINT T 
HP OBJECT IS TO DELIVER THE MOONSHINE." : GOTO 60 
1280 IF CP <> 34 PRINT M6" MAYBE I SHOULD GET IT- GOTO 60 
1290 IF CP = 34 AND NO = 12 PRINT M6 : OB(38, 0) - - 1 • CP » 

1300 IF T N0 6 <> 12 PRINT M0" YOU MEAN THE LADY" : GOTO 60 

i 3 32 IF "c°P = = I AND^ATrINT^ : CP = 2 : GOTO 60 

IfTo M = 3 9 S AND T °CP 60 17 PRINT M6 : CP = 15 . GOTO 60 
1350 IF NO = 5 AND CP = 10 PRINT M6 : 0B(1, 0) = CP : 06(14, 0) 

ISM^f'nO^YLd CP = 15 PRINT M6 : OB ( 1 , 0) = CP : CP = 16 : 
1370 T IF 6 NO = 5 AND CP = 22 PRINT M6 : 0B(1, 0) = CP : OB(25, 0) 

13 = 80 C IF ! NO B i 28 5'AND CP^ ^INT^ : 0B(1, 0, = CP : OB(27, 0) 

m CP • 0B(41. 0) =• CP : GOTO 60 
1390 IF* NO = 5 PRINT M6 : OB ( 1 , 0) = CP : GOTO 60 
1400 PRINT M0 : GOTO 60 

1410 GOTO 1420 ddtmt Mfl"T DON'T 

1420 IF CP = 10 AND NO ■ 7 AND 0B(3, 0) <> - 1 PRINT M0 I DON I 

HAVE TWO SPARE TIRES" : GOTO 60 „ 
1430 IF CP » 10 AND NO = 7 AND OB 1, 0) - - 1 PRI 5^ 1 C 

THAT " -GOSUB 3030 : PRINT "YET": GOTO 60 
1440 IF N0 # - 5 AND CP = 10 PRINT M0" TRY TIRES" : GOTO 60 
450 IF CP = 10 AND NO = 7 AND 0B(1, 0) = CP PRINT M6" ^ VLL 
GET IN THE CAR AND GO.." I GOSUB 3030 : OB ( 1 , 0) = - 1 : CP - 
11 : GOTO 60 

1 4 470 PRINT M 3"TYPE T LOAD TO INPUT A SAVED GAME" : GOTO 60 
1480 PRINT "OKAY.... "; Nl$ : GOTO 60 
1490 IF NO = 5 PRINT M3 : GOTO 60 



Thunder Road 



BASIC Adventures 101 



1500 ip Cp _ 24 Axjrv 

OTO 60 N0 <> 13 PRINT M3"WHAT ABOUT THE TREES! " . r 

Ao40 IF CP = 22 AND * 
CAR AND MAKE TRACKS" = - "en'"!, M6 " N ° W 1 HAD BETTER GET IN THP 

^ tTS =^4 ^0^06(2? ! « CP = " ! G0T ° " 

157; i/s « A = CP PRINT m " WHAT A80UT THE 

»Ji - cf r 2 i G r 6 ° 0= 17 AND 0B(21 ' 0) ° " 1 PRINT M0B * ou 

if. 9 : i p p ri c n p t ?> 3 i 7 G -? « 

1610 if CP - 37 ANn T M0 ! G0T0 60 

» s =" p Si?^ •"■"■^ s ° 18 PRINT M3 " — < 

"30 IF CP <> 10 PR?NT -v6 U C N P T = 38 ! G °™ 60 

1660 Print Mi , G0TQ 60 CHR?(34 ) • GOTO 6 

1670 X = RND ( 3) . Ip rv> 

»ir,; S'iVi.Tt^s °" E 0000 l00K " ~ *» — » 

1800 ! IF° B N ( O 15 i 2 6 P = RI - NT ' JoR ^0 " 1 PRINT «' * A FORTUNE COOKIE 

i!« SS"? end gSS 6 ° eREAK C00K1E " : GOTo « 

1840 AS . INKEYS : if AS = ... Mmm *™ AGAIN < « 

— ° R A$ = *** THEN I860 



102 BASIC Adventures 



Thunder Road 



1850 GOTO 1840 
1860 IF A$ = "Y" RUN 
1870 CLS : END 
1880 GOTO 1890 

1890 PRINTS 640,; : A$ = n A TRUE LIFE ADVENTURE " : FOR I = 
1 TO LEN (A$ ) : PRINT MID$ (A$, I, 1); : X = SQR(9999) : NEXT I 
1900 GOTO 2100 
1910 CLS 

1920 PRINT "*** ADVENTURE VERSION 1.1 COPYRIGHT (C) 1980 " : PRIN 
T 

1930 PRINT "BY DON & FREDA BONER" 

1940 PRINT : PRINT " WELCOME TO THE WONDERFUL WORLD OF 

ADVENTURE! " 
1950 PRINT 

1960 PRINT "IN THIS ADVENTURE YOU TRY TO DELIVER WHITE-LIGHTNING 
(MOONSHINE) FROM YOUR FARM IN POSSUM HOLLOW THROUGH THE HILLS 
AND "; 

1970 PRINT "HOLLOWS TOKNAWBONE — BUT WATCH OUT FOR THE REVENUER 
•S AND "; 

1980 PRINT "THE SHERIFF. THIS IS YOUR LAST RUN. IF YOU ARE SU 
CCESSFUL YOU WILL HAVE ENOUGH MONEY TO GO TO COLLEGE."; 

1990 PRINT " YOU MAY ONE DAY BECOME PRESIDENT. BUT REMEMBER, IF T 
HE LAW DON'T GET YOU THE MOUNTAIN WILL. GOOD LUCK" 

2000 PRINT : PRINT TAB ( 5 ) " PRESS ANY KEY" 

2010 IF INKEY$ * "" THEN 2010 

2020 CLS 

2030 PRINT : PRINT : PRINT 

2040 PRINT "AS YOU PLAY THE GAME, I WILL BE YOUR EYES AND HANDS. 
DIRECT ME WITH ORDINARY ENGLISH SENTENCES OF ONE OR TWO WORD 
S." 

2050 PRINT "SOME EXAMPLES ARE: " CHR$(34) "ENTER CAR" CHR$(34)", 
" CHR$ (34) "DRIVE NORTH" CHR$(34)", " CHR$(34)"GET KEY" CHR$(3 
4)", AND" : PRINT CHR$(34)"GO WEST" CHR$(34)"." 

2060 PRINT "USE ANY VERB/NOUN COMBINATION OR YOU CAN ASK FOR * H 
E L P *. IF THIS GAME IS TAKING YOU TOO LONG TO PLAY OR TOO 
LONG A TIME TO SOLVE, DON'T WORRY. IT WAS DESIGNED TO DO SO. 
TO SAVE A "; 

2070 PRINT"GAME,TYPE " CHR$ ( 34 ) "SAVE" CHR$(34)". TO LOAD A GAME, 
TYPE "; 

2080 PRINT CHR$ (34) "LOAD" CHR$(34)". 

PRESS THE SPACE BAR TO BEGIN..."; 
2090 IF INKEY$ ■ "" THEN 2090 ELSE CLS : RETURN 

2100 CP - 2 : NN - 28 : LO = 41 : P « 38 : NV = 30 : DIM NO$(NN) 

, OB$(LO), OB(LO, 1), P$(P), P(P, 3), VB$ (NV) 
2110 P$(l) * "INSIDE A BARN" : DATA 2, 0, 0, 

2120 P$(2) ■ "ON MY FARM OUTSIDE POSSUM HOLLOW" : DATA 0, 0, 0, 
3 

2130 P$(3) - "15 MILES FROM POSSUM HOLLOW" : DATA 4, 5, 2, 7 
2140 P$(4) ■ "AT A DEAD END" : DATA 0, 3, 0, 

2150 P$(5) * "GOING DOWN A HILL ON DEAD MAN'S CURVE" : DATA 0, 6 
, 0, 

2160 P$(6) = "D E A D i MY CAR WENT OFF THE CLIFF" : DATA 0, 

0, 0, 

2170 P$(7) = "AT A NARROW ROAD" : DATA 0, 0, 0, 



Thunder Road 



BASIC Adventures 103 



= " PAST THE R0AD BLOCK" : DATA 0, 0, 0, 9 

" f DaVi^SS, V HR$<34) + " T " + ° HR$(34) + " ^ ^ R0AD 
2200 P$(10) = "ON THE'siDE OF THE ROAD BY A CLIFF" : DATA 0, 0, 

2220 = A ? ARK COUNTRY ROAD" : DATA 12, 0, 0, 

i> ^ data :; a : a 3 ; ^ chrs(34 > + + ««*o«> t - u T « E r OA 

Itfcl = " 0N A GRAVE L ROAD" : DATA 0, 19, 14, 
2250 p! }i = "° N A WINDING ROAD" : DATA 0, 0, 15, 
2250^p$(i 5) = "IN FRONT OF A CHURCH PARKING LOT" : DATA 0, 18, 

22?!! pfttS! = !!J N FR0NT 0P THE C "URCH" : DATA 0, 0, 0, 

9m! n! l M* = INSIDE CHURCH" : DATA 0, 0, 0, 

llll p.Imo = 1*1 A GAS STATI0N " • DATA 13, 0, 15, 19 

2300 PSO« = l£ T A L ° NG DRIVE WAV" : DATA 0, 0, 0,' 20 

23?f pI 5? = I?2 AN UNKN °WN DARK ROAD" : DATA 31 22, 0, 21 

K», A PIRE ' ™ E CAR WAS STR ° CK BY LIGHTNING" : DAT 

llll tZikl' 9 & FRONT OF A BRIDGE" : DATA 0, 0, 0, 
2340 iVtlll = AN ° LD ABANDONED ROAD" : DATA 0, 24, 0, 

23s2 pf = A DEA ° END ROAD" : DATA 0, 0, ' ' 

23M = IJ2 FARMER BR ° WN ' S PASTURE" :'DATA 0, 27, 28, 26 

2370 p! 97 = 112 A BULL PASTURE" : DATA 0, 0, 0, g ' ' 6 

2380 PS 28 - -H^V," FARMER 8R ° WN ' S LAKE " ' DATA 0, 0, 0, g 
P§(28) = "BACK ON THE MAIN ROAD" • DATA n a a n. 

2390 P$(29) = "IN KNAWBONE" V DATA 0, V ' ' " 
2410 IV.l'A = A ° ARK FUNNEL" t DATA g^'g^ 0, 31 

2420 PS 32 - ° F A TUNNEL" : DATA 20, 0, 3 2 

P$(32) « "AT A DEAD END" : DATA <3 a a 

olo? P f (37 > s A T A NARROW RIDGE" : DATA a a a 

2480 P $( 38) = "AT THE OTHER SIDE OF THE BRIDGE" : DATA 29, 0, 0, 

'I" ° B DATA 2,7 S0UPE ° ° P CHEVY LOADED WITH WHITE— LIGHTNIN 

2500 0B$(2) = "AN OLD BARN" : DATA 2 a 

2510 OB$(3) = "- 2 SPARE TIRES -": DATA 1 10 

f!!2 oUiil = IS?"" OLD PARTS FOR THE STILL" ^ DATA 1 
2530 OB$(5) = "OLD TRUSTED STILL" • DATA a 1 ' 

2540 OB $( 6> - "THE RE VEN UERS ABOUT* 10 MILES BEHIND ME" , DATA 3 

llll SSIS} Z ""r 3 ev F e n R 5e S rs IN 5 T m H ile R s OA b D ;ck" DATA J a \ 

2570 08$ (9) = "A LOT OP pnr In , ^ DATA 4 ' 

2580 OB$( ( 10, = A AL L L T ThIt F M 00 A S N H D IN L E OT G S ON E TaTXj ° ATA 5 ' 
2590 0B$(11) = "DUMB OLD DEPUTY EARNEST HAPmf^I ' ° ATA 6 ' 
OCR" : DATA 7, 10 EARNEST HARDLEY SET UP A ROAD-BL 

26 DA TA°1, (i l 2 = ANGRY DEPUTY AN ° TRE OUSTED UP ROAD BLOCK" : 

26« 0B*<13> , "WOODS. SOMETHING IS WRONG WITH THE CAR" , DATA 



104 BASIC Adventures 



Thunder Road 



2620 0B$(14) = "A FUNNY LOOKING BOX" : DATA r 10 

2630 0B$(15) = "A FORTUNE COOKIE" : DATA 0, 10 

2640 0B$(16) = "THE REVEN UERS ABOUT 12 MILES BEHIND ME" : DATA 1 
2 

2650 0B$(17) = "GOOD! THE REVENUERS TURNED THE WRONG WAY." : OAT 

A 13, %A a 

2660 0B$(18) = "A DIM LIGHT UP AHEAD" : DATA 14, y 
2670 0B$(19) - "A CHURCH WITH IT'S LIGHTS ON." : DATA 15, 
2680 OB$(20) = "AN OPEN DOOR" : DATA 16, 
2690 0B$(21) = "A SET OF KEYS" : DATA 0, 10 
2700 0B$(22) = "A LARGE PIPE ORGAN" : DATA 17, 

2710 OB$(23) = "ALL THAT MOONSHINE GONE TO WASTE" : DATA 21, 
9720 OB$(24) = "A SIGN" : DATA 22, ^ n n 

2730 OB$(25) = "SOME HIGH BUSHES AND TREE LIMBS ON THE SIDE OF R 
OAD" * DATA 

2740 OB$(26) * "THE SMALL BRIDGE IS CLOSED FOR REPAIRS" : DATA 3 
7 

2750 OB$(27) = "A LARGE MEAN LOOKING BEAR" : DATA 0, 
2760 OB$(28) = "AN OLD PIPE" : DATA 0, 10 

2770 OB$(29) * "THE REVENUERS ABOUT 3 MILES BACK" : DATA 24, 
2780 OB$(30) = "LOTS OF TREES AND NO SIGN OF THE ROAD" : DATA 25 

2790 OB$(31) = "BULLS CHARGING THE CAR, I'M DONE FOR" : DATA 26, 

2800 OB$(32) = "A LOT OF MUD AND WATER, I'M STUCK" : DATA 27, 

2810 OB$(33) = "A SIGN" : DATA 28, 

2820 OB$(34) - "THE BOY'S WAITING WITH ALL THEIR MONEY" : DATA 2 

9 20 

2830 OB$(35) = "A STRANGE LIGHT UP AHEAD" : DATA 31, 

2840 OB$(36) = "SHERIFF BUBA WITH A GUN AT MY HEAD" : DATA 32, 

2850 OB$(37) = "LOTS OF TALL DARK TREES" : DATA 33, 

2860 OB$(38) = "A CUTE BLOND LADY HITCHIKING" : DATA 34, 

2870 ol$(39) = "MY CAR'S ROARING AHEAD WITHOUT ME 1 THE BLOND TOO 

K THE MOONSHINE" : DATA 35, _ *« r «* tup pmptmp 

2880 OB$(40) = "A LOT OF SMOKE FROM MY HOOD, I THINK THE ENGINE 

BLEW UP" : DATA 36, 
2890 0B$(41) = "A LOCKED GATE" : DATA 24, noAOmll n<5/ .v 

2900 D$(0) - "NORTH" : D$(l) = "SOUTH" : 0$(2) = EAST : D$(3) 

= "WEST" 

2910 GOTO 2920 - /T Mpvai , T 

2920 FOR I = 1 TO P : FOR J = TO 3 : READ P(I, J) : NEXT J, I 

2930 FOR I = 1 TO LO 

2940 IF OB$(I) = "" THEN 2960 

2950 READ OB(I, 0), OB(I, 1) 

2970 DATA NOR, SOU, EAS , WES, CAR, BAR, TIR, ROA, CHU, ORG, KEY, 
LAD, TRE, BUS, PIP, BEA, GAT, RID, HIL, DEP, N, S, E, W, BOX, 
COO, BRI, SIG 

2980 FOR I = 1 TO NN : READ NO$(I) : NEXT I 

2990 DATA GO, DRI, ENT, GET, TAK, LOO, EXA, RUN, BUS, HEL, QUI, 
SAV, LOA, SCO, PIC, EXI, CHA, FIX, PLA, SAY, HIT, KIL, MOV, UN 
L, JUM, BRE, FIG, REA, DRO, OPE 

3000 FOR I - 1 TO NV : READ VB$(I) : NEXT I 



Thunder Road 



BASIC Adventures 105 



3010 G0SU8 1910 : GOTO 60 
3020 END 

Mil LX R - A « = 1500 = NEXT : RETURN 

3050 IF CP : , PR i NT "** T0 ° SAD -»; 

= 27 OR CP I n» ° R CP = 10 ° R CP = 32 OR CP = 24 OR CP 

AW GOT YOU" "elSE 3070 = 35 THEN PRINT " " THE ^ 

3060 GOSUB 3030 : GOTO 1830 

30^0 g'osSb 303 6 0°f GOTO Uii* " = " PRINT """ Y ° U ARE DEAD ~" 
3090 GOSUB 3030 : print • **** YOU 

*** " : GOTO 1830 YOU MADE IT| 




106 BASIC Adventures 



Thunder Road 



Chapter Four 



Deadly Dungeon 
by Don & Freda Boner 




Note: The save game routines for Deadly Dungeon 
are for tape only. Disk routines may be added by 
modifying lines 1390 to 1500. 



BASIC Adventures 107 



10 POKE 16553, 255 : CLEAR 350 : CLS : PRINT CHR$(23) : A$ = "Th 

e Deadly Dungeon " : B$ = " By Don & Freda Boner " 

20 FOR I = 64 TO 448 STEP 64 : PRINT@ I - 64, * 

" : : PRINT@ I, A$; : PRINT@ 960 - I, B$ : FOR J * 
1 TO 50 : NEXT J, I 
30 DEFINT A - Z : DEFSTR M : M0 = "I don't see iti" : Ml = "You 
can't do that. " : M2 = "You might try examining things" : M3 
= "I don't know " 

40 M4 = "That won't work." : M5 = "I can't " : M6 = "Ok. " : GOT 

1960 

50 TROFF : GOSUB 250 : GOSUB 140 : IF NO < 9 AND NO <> AND (VB 

= OR VB = 4) VB = 1 
60 IF VB > 14 OR VB = 2 OR VB = 3 THEN 100 
70 IF CP = 10 OR CP = 6 THEN 100 
80 IF VB = 26 THEN 100 

90 IF VB > AND LEN (Nl$) > AND NO = THEN PRINT "I don't kno 

w what " CHR$(34) Nl$ CHR$(34)" is" : GOTO 50 
100 IF Nl$ = "" AND (VB > 8 OR VB = 2) AND VB < 20 PRINT " Pleas 

e supply an object" : GOTO 50 
110 IF CP = 25 THEN DE = DE + 1 
120 IF CP - 31 THEN CB = CB + 1 
130 GOTO 380 

140 T = T + 1 : PRINT© 960, " " ; CHR$(94); " What should 

1 do"; : INPUT CM$ 

150 VB$ = "" : NO$ = "" : VB = : NO = 

160 LC = LEN (CM$ ) : FOR I = 1 TO LC : A$ = MID$ (CM$, I, 1) • IF 
A$ <> " " VB$ = VB$ + A$ : NEXT I ' ' ' * 

Hid IF LEN ( VB$) + 1 > = LEN (CM$ ) NO = : GOTO 190 
180 NO$ = RIGHT$(CM$, LC - I) 

190 Nl$ = NO$ ; Vl$ = VB$ : VB$ = LEFT$ ( VB$ , 3) : NO$ = LEFT$ (NO 
$, 3) : FOR I = 1 TO NV : IF VB$ = VB$(I) THEN VB = I : GOTO 2 
20 ELSE NEXT I : VB = 

200 IF Nl$ = "" NO$ = VB$ 

210 VB = : GOTO 230 

220 IF VB$ = CM$ THEN 0=0: N0$ = " " • RETURN 

23 ° IIW", 1 ^ -V: IF m$ = N0$(I) THEN N0 ■ 1 : ELSE next i 

240 RETURN 

250^PRINT@ 0, CHR$(30) : PRINT : PRINT : PRINT : PRINT : PRINT : 
260 P$ = "I'm " + P$(CP) 

270 PRINT© 64, P$ "." : K = : FOR I = 1 TO LO | IF OBfl fll 

CP THEN 310 V v 0B d' ) <> 

280 IF K = PRINT " 
Visible items: "; 

290 IF 3 + POS(0) + LEN(OB$(I)) > 63 PRINT 
300 PRINT OB$(I)" # »; : K = K + 1 
310 NEXT I : IF K > PRINT 

320 IF CP = 1 OR CP = 6 OR CP = 13 OR CP = 15 OR CP - 19 or pp 
3301 °= R C ! = PRINT°" CP = ^ PRINT *™^^> 140) P :'RET 9 UR O N R " " 
Obvious exits are: "; : FOR I = TO 3 : IF P(CP, I) = THEN 36 
340 IF K > PRINT ", "; 



108 BASIC Adventures 



Deadly Dungeon 



350 PRINT D$ (I) ; : K = K + 1 
360 NEXT I : PRINT "." 
370 PRINT STRING$(63, 140) : RETURN 
380 IF DE => 4 GOTO 2600 

i390, 1450, 1370, 1310, 15 10, I860, 980 ■ 
410 PRINT " 1 don't know how to CHRM^ vi? ^ nn ^ J ' 

420 n iF NO°= T PRINT "I need a direction" : GOTO 50 

430 IF NO > 8 THEN 600 

AAOi TF NO > 4 THEN NO = NO - 4 

s : i s'5 tvjk vts-a .»«■«* - 1 

7 OR CP = 18 OR CP = 27 THEN GOTO 770 

til 11 «0 ^YaNdTb^! 0) = - 1 PR- «6 = 0B(34, 0, = 19 = CP 

49."i"nO OB(34, 0) = - 1 PRINT M6 : OB(34, 0) = 19 = CP 

= 24 : : GOTO 50 
500 PRINT M4 : GOTO 50 Q0T0 50 

lit \l C cl : 11 »?i » R "^t- h "e th e aeea» : CO 

530°IF CP = 28 AND 0B(31, 0) <> - 1 PRINT M5 » I need the pick" 

560 IF CP = 32 AND NO = 1 PRINT M6 : OB (43, 0) = : CP = 33 . G 

1 G0T0 50 „ n </ N m« " CP = P(CP, NO) : GOTO 50 

590 PRINT "OK, I went " ; D$ (NO) . . r\w» t 

\'A \f% IV. To,". .. o» cj • . » cj - i. m« «• 

s: s n r.-KVi 5's.s . «» » 

640 IF NO > 17 AND NO < 25 THEN 690 

650 IF NO = 30 OR NO = 31 OR NO = 32 THEN 690 

660 IF NO = 43 THEN 690 . GOTO 50 

670 IF NO = 36 PRINT "It's too heavy to carry . GOTO 50 

680 IF NO > 32 AND NO < 43 PRINT Ml : GOTO 5 .0 

690 IF ZZ + 1 > 5 PRINT -I'm carrying too much . GOTO 50 

700 IF OB (NO, 0) > AND CP = 1 TS = TS = Tb - 1 

710 ZZ = ZZ + 1 : OB(NO, 0) = - 1 : PRINT M6 . GOTO 50 

720 PRINT M4 : GOTO 50 „ rHR $/ 3 4) m 

730 IF NO = AND LEN (N 1$ ) > PRINT " I can't drop CHR$(34) N 

1$ CHR$(34) : GOTO 50 
740 IF OB NO, 0) <> - 1 PRINT Ml I GOTO 50 , 
Ibid ZZ = ZZ - 1 : PRINT M6 : OB(NO, 0) * CP : IF CP - 1 AND Ob ^ 

0, 0) > TS = TS + 1 
760 GOTO 50 



Deadly Dungeon 



BASIC Adventures 109 



770 IF CP - 2 AND 0B(16, 0) <> PRINT M5 : GOTO 50 
780 IF CP = 3 AND OB(ll, 0) <> PRINT M5 : GOTO 50 
790 IF CP = 4 AND OB(9, 0) <> PRINT M5 : GOTO 50 
800 IF CP = 5 AND OB(10, 0) <> PRINT M5 : GOTO 50 
810 IF CP = 16 AND OB(17, 0) <> PRINT M5 : GOTO 50 
820 IF CP = 17 AND OB(12, 0) <> PRINT M5 : GOTO 50 
830 IF CP = 18 AND OB(13, 0) <> PRINT M5 : GOTO 50 
840 IF CP = 28 AND OB(15, 0) <> PRINT M5 : GOTO 50 
850 IF CP = 27 AND OB(14, 0) <> PRINT M5 : GOTO 50 
860 GOTO 580 

870 IF NO » 29 AND CP = 11 THEN 890 

880 IF NO = 29 AND CP <> 14 PRINT Ml : GOTO 50 

890 IF CP « 11 AND NO = 29 PRINT M6 " I see something" : OB(30. 

0) = CP : OB(29, 0) = : GOTO 50 
900 IF CP = 11 AND NO = 30 AND OB(30, 0) <> - 1 PRINT M5 : GOSUB 

2590 : PRINT "yet" : GOTO 50 
910 IF CP = 11 AND NO * 30 PRINT M6 : OB(18, 0) - CP : GOTO 50 
920 IF CP = 7 AND NO = 40 PRINT M5 " Try ENTER PIT" : GOTO 50 
930 IF CP = 8 AND NO = 30 PRINT M6 M Wow!" : OB(19, 0) = CP : GO 

TO 5 

940 IF CP = 9 AND NO = 30 GOTO 2600 

950 IF CP = 14 AND NO = 29 PRINT M6 : OB (33, 0) = CP : GOTO 50 
960 IF NO = 25 PRINT M5 : GOTO 50 
970 PRINT Ml : GOTO 50 

980 IF CP = 6 PRINT M6 : CP = 7 : GOTO 50 

990 IF CP = 7 AND OB(31, 0) <> - 1 PRINT M5 " I don't have the p 
lck" : GOTO 50 F 

1000 IF CP = 7 AND NO = 40 PRINT M6 : CP = 15 : GOTO 50 

1010 IF CP = 14 AND NO ■ 33 PRINT M6 : CP = 8 : GOTO 50 

1020 IF CP = 15 AND NO m 37 PRINT M6 : AB = 2 : CP = 1 : GOTO 50 

1030 IF CP = 19 AND NO = 34 PRINT M6 " Now I can go south or wes 

t" : OB(34, 0) = - 1 : GOTO 50 

1040 IF CP = 25 PRINT M5 " yet" : GOTO 50 

1050 IF CP = 26 AND NO = 37 PRINT M6 : AB = 3 : CP = 1 : GOTO 50 

1060 IF CP = 32 AND OB(43, 0) <> - 1 PRINT M5 " I don't have the 

rope" : GOTO 50 
1070 IF CP = 32 PRINT M6 : CP » 33 : GOTO 50 
1080 IF CP = 33 AND NO = 37 PRINT M6 : CP = 1 : GOTO 50 
1090 IF CP > 1 OR NO <> 37 PRINT Ml : GOTO 50 
1100 IF AB = 1 THEN XY = RND ( 5) 
1110 IF AB = 1 AND XY = 1 THEN XY = 2 
1120 IF AB = 1 THEN CP = XY : PRINT M6 : GOTO 50 
1130 IF AB <> 2 THEN 1180 ELSE XY - RND (3) 
1140 IF XY = 1 THEN XY = 16 
1150 IF XY = 2 THEN XY = 17 
1160 IF XY - 3 THEN XY = 18 
1170 CP = XY : GOTO 50 

1180 IF AB <> 3 THEN 1220 ELSE XY = RND ( 2 ) 
1190 IF XY = 1 THEN XY « 27 
1200 IF XY = 2 THEN XY = 28 
1210 CP = XY : GOTO 50 

1220 IF AB > 3 THEN AB = 1 : GOTO 1090 



110 BASIC Adventures 



Deadly Dungeon 



Ull 11 £ = 11 AnTnY= 4 l^AND ot(49, .) <> CP PRINT M 4 = GOTO 
12 |S IF CP = 31 AND OB(31, 0) <> - 1 PRINT M5 « I don't have the 

126 P a T/ C P G =°3I 1*1- « ■ Wow I see a passage" . GOSUB 25^: 
PRINT "Now I will see where it will taKe me 
50 

1270 M4 : GOTO 50 

19R0 IF CP <> 32 PRINT Ml : GOTO 50 

illS IF ol(43, .) <> " 1 S *% RINT - Th e rope caugh 

i3 roS B Mi^w 9 ;?;i g ;t G o°rof 25 ?his dark and a amP Pl e . 

CP = 33 : GOTO 50 „ 
1310 A$ = "sword, shield, bow and arrows 

1320 IF ZZ = PRINT "Except for my A$ , nothing • ke 
1330 PRINT " Currently I » m Y f _ f 1360 

an j .n . for i = 1 TO LO : If UBUf 0; >' 
1340 IF * + POS C0) ♦ LEN (OB$ (I) ) > 63 PRINT 
1350 PRINT OB$(D", "J 

1360 NEXT I | PRINT : GOTO 50 LEFT$(X$, 1 

»?V$f%32 B-VSSMS *2 ^in-Hhinf SC.* : GOTO 50 

1380 CLS : END ro ,j v ... vy 

1390 CLS : INPUT "Press enter when ready , yy 

1400 FOR I = 1 TO LO 

1410 PRINT#-1, OB(I f 0) 

1420 NEXT I R 

1430 PRINT#-1, CP, ZZ, T, CI, Al, AB 

1440 GOTO 50 u yy 

1450 CLS : INPUT " Press enter when ready , YY 

1460 FOR I = 1 TO LO 
1470 INPUTt-l, OB(I, 0) 

1480 NEXT I ad 
1490 INPUT#-1, CP, ZZ, T, CI, Al, AB 

1500 GOTO 50 nfiri qx = i SC = SC + OB(I, 

1510 SC = : FOR I = 1 TO LO : IF OB(I, uj 

1) r ii^ , k = ,t^ «cr" ooints out of a total of 5 

1520 NEXT I : PRINT M6 "You have SC P°^ n ^ " „ . pRINT ,. Yoa na 

r.';,; t i'„ tr P 'j«T. as 

50 

1530 IF CP <> 10 PRINT Ml : GOTO 50 ^ 
1540 PRINT M6 : GOSUB 2580 : PRINT Look - CP » enter 
1550 IF CP = 1 AND NO = 42 PRINT M6 It ^ S : >treasures . . PRIN 
" CHR $ (34) ■BXII IMPL E- CJRj J3« J £ - >t ^ ^ 

T "here, say " CHR$(34) sc °* E . h ^ ? Q ' » . GO TO 50 
better luck than J"*f R ™ the f ^ ^ Qpen „ , G0 

1560 IF CP s 9 AND NO ■ io fkini mu i 

T0 50 an - ™ PRINT M6 " For magic, move me" : GOT 

1570 IF CP = 10 AND NO = 3b PKiNi no ^ ^ 

50 *+t*<* *\ » - 1 PRINT M6 " Go north anyway" 

1580 IF CP = 13 AND OB(32, 0) - J- 

: GOTO 50 



Deadly Dungeon 



BASIC Adventures 111 



1590 IF p p i(- 

: GOTO 50 1EMPLE CHR$(34) " and you will be in Level 2" 

it" if c c p : i\ and N N o° : \i i* 1 ™ « 6 : z « e fp goto 50 

GOTO 50 CHR$(34) and you will be in Level 3" , 

Hit \l CP I 3 3 1 AND olltl' 11 °, CP ^ M3 ■ G0T ° 50 

.■"■i in estrange 6 L 9 guaL»- CP g'oJub 258^ G °L°? 2590 ! PR '" 
it says'" CHR$(34) - H I t h'e'- ' RINT 1 think 

1640 IF CP = 28 an n un „ i CHR$(34) : GOTO 50 

"50 IF CP = 3 2 3 8 AND N ° = = \\ ^Tp"? " G ° e3St " ■ GOTO 50 

ures and - CHR$(34) "ENTER t1m^» chrs^?^ Take y ° Ur tre ^ 

1660 PRINT Ml : GOTO 50 lbnPL E CHR$(34) GOTO 50 

1670 PRINT " Okau •■ ». 1 ■« 

1680 IF NO = k T^EN'l730 N1$ ' G ° T ° 50 

1690 IF NO > 8 THEN 1730 

1710 NO =° > 4 m = N0 " 4 

1720 PKINT^Oka^Vfee^oiJ*??} = ? PRINT M1 : G0T0 50 
1730 IF CP = 7 AND NO = 40 PRiNT^fi ..'^ "° $ <N0) 1 G ° T0 50 

Q OTO 50 40 PRINT M6 There is something there • 

1740 IF CP = 8 AND NO = 35 PRINT M fi » T 

h " "range Hems-, : GOSUB 2590 • PRinT-T* P ° tS and ot 

1750 X '" •' G0T0 50 PRINT and a box. I'll get 

m. ll ? = 1 ™ D ™» ; M3 OB ( 3i ry 60X " ' G0T ° 50 

1770 IF CP = 9 AND NO = 35 PRINT Mfi "'r ' 0) = CP ! G °TO 50 
■ = GOSUB 2590 : p&T.« ..J."- with writing 

I^-P^ " D N ° = " PRINT M6 ° 6(23 ' 0) = CP = * 
90 "prTnt »i H N ° N ° = 36 PRI NT M6 » Ifs a n , . 

1820 IF CP = ^ ofcP = 6 3i o'r'cp'-V" ' G0T0 50 
1830 e ^j N n T ^ni 50 , N0 = ^ PRINT M1 " *" 

TO 5 P RINT 1 *»' k - ^re ■ CHR $(3 4) Nl $ CHR$(34) „ . GQ 

I860 PRINT M0 : GOTO 50 
1870 IF CP <> 32 print mi 
1880 PRINT M5 - Thr ! G0T ° 50 

1890 prin? f PRIOT^p^J" : D G0T0 50 

1900 A$ - INKEY$ I If A$ - »y^ T I -gain? (Y/N) . 

1910 GOTO 1900 F A? ~ OR A$ = - N 4 THEN 1920 

1920 IF A$ = -Y- RUN 
1930 CLS : end 
1940 IF CP = 32 PRINT » t» u 

PRINT Throw rope" s GOTO 50 



112 BASIC Adventures 



Deadly Dungeon 



1950 PRINT M2 : GOTO 50 
1960 GOTO 2190 
1970 CLS 

1980 PRINT "*** Adventure Version 2.3 Copyright (c) 1980 " : PRI 
NT 

1990 PRINT "By Don & Freda Boner" 

2000 PRINT : PRINT " Welcome to the wonderful world of 

adventure ! " 
2010 PRINT 

2020 PRINT "In this adventure, you will enter the dungeon and fi 
ght off vicious creatures in search of treasures. I will b 

e your eyes" 

2030 PRINT "and hands. Direct me with ordinary one or two word 
sentences . " 

2040 PRINT "Some examples are: " CHR$(34) "GO NORTH" CHR$(34)" ", 
" CHR$(34) "FIGHT ZOMBIE" CHR$(34) ", " CHR$(34) "INVENTORY" 

CHR$(34) ", and " C«R$(34) "GET RING" CHR$(34) 
2050 PRINT "If this adventure is taking you too long to solve, y 

ou can save" 

2060 PRINT "the game by typing, " CHR$(34) "SAVE" CHR$(34) ". To 
load a previously saved game, type " CHR$(34) "LOAD" CHR$ ( 
34) "." 
2070 PRINT " 

Press the space bar to begin..."; 
2080 IF INKEY$ = "" THEN 2080 ELSE CLS 

2090 PRINT : PRINT : PRINT "You dare to enter the dungeon. "; : 
GOSUB 2590 : PRINT ". "; : GOSUB 2590 : PRINT " . " : GOSUB 259 


2100 PRINT "Ok, be prepared to face the peril the dungeon has in 

store for you. I will roll the dice to "; 
2110 PRINT "determine your combat rating. Six is the highest. 

I will also determine the number of arrows you have." 
2120 PRINT : CI = RND ( 6 ) : IF CI =< 2 THEN CI = CI + CI 
2130 PRINT "You have a combat rating of "; CI; 
2140 Al = RND(17) : IF Al =< 5 THEN Al = Al + 5 
2150 IF CI =< 3 THEN Al = Al + 6 

2160 PRINT " and you have "; Al; "arrows." : PRINT : PRINT "Writ 

e down your combat rating and the number of arrows." 
2170 PRINT : PRINT : PRINT " Press the 

space bar to begin..." 
2180 IF INKEY$ = "" THEN 2180 ELSE CLS : RETURN 

2190 CP = 1 : NN = 43 : LO = 53 : P = 33 : NV = 27 : DIM NO$(NN) 

, OB$(LO), OB(LO, 1), P$(P), P(P, 3), VB$ (NV) 
2200 PRINT© 640,; : A$ = "A Dungeon & Dragon Adventure " : FOR I 

= 1 TO LEN (A$ ) : PRINT MID$(A$, I, 1); : X = SQR(9999) : NEXT 

I : AB = 1 

2210 P$(l) = "inside the deadly temple" : P$(2) = "in a small ar 

mory" : P$(3) = "in the dim lit small room full of steam" 
2220 P$(4) = "in the display room" : DATA 0, 0, 0, 0, 0, 0, 0, 1 

1, 0, 0, 0, 10, 0, 0, 0, 9 
2230 P$(5) = "at the passage of the dead" : P$(6) = "inside the 

old cathedral" : P$(7) ■ "in the dark pit room" 
2240 P$(8) - "in the Sorcerer's magic room" : DATA 0, 6, 0, 13, 

0r 0, 0, 0, 8, 12, 0, 0, 10, 7, 9, 
2250 P$(9) = "in a Victorian sitting room" : P$(10) = "in a dark 
grave yard" 



Deadly Dungeon 



BASIC Adventures 113 



226 !. P !, (1 J! TJU r r r 4 old corriaor " : DATA 10 ' 13 ' - l4 - 

2 "" 9 r«i 2 ii; r ;^. a . ^i?* r s » 9e " : p ?j i3) = " in the ° ia ^ » 

2280 PS (15V- » ci j ?i 14) = ln an old rock m ine» 

229 P ; K jr^vr^v 00 ™" : data 7 - a ' a - i3 ' ' « 

(18 f - " ? SmaU lab " = P$(17) = " in a small "ve» • p S 

2300 psTiq)"-^? 9 ladia tor's training arena" ' P$ 

a a 7a a 6 3 CaVe beside an underground river" : DATA 

2310'p $ '(20) "iin'a^mfl'i^' ?' ' ' 21 ' ' ' <>' 

chambers" : PU22) "afa tU " nel ! J $<21) = the Senate 

2320 pS.ot? - i - at a narrow path" 

2 - T 2 " ^ £*£.'.•** 2i ' - 22 - "< ». 

workroom-' ^ ^ ° f " r6tUrn " ! P$ < 29 > = a small 

236 3 : $ 3 ( 0, 0) 29 = ;^, a 2 ? r 2 9 mUddy fi6ld " = ° ATA ' ' 30, 31, 

23 t" f $ p|(33) = "J?i* n i5e r9 Ki^Tt CaVern " = P$(32) = " in a Pi 
30, 0, 0, 0, 0! 0, 0, % r °° m " = ° ATA 30 ' 29 ' 2 "' 

2380 DATA A giant lizard, A zombie, A killer cockroach a • 
grasshopper. An evil » ? * llier cockroach, A giant 

2390 DATA A killer tiqer A wotfi^s^ bat ' A Wicked tro11 

copper=>lamp, A King ■ s=>crown ' A \ >d 1 lam ° nd ' A i diamond=>ring , A 
2400 DATA A=>deed to the castle Candle stick=>holder 

o^'l^Tg'ee'n^^" 1 :^ 3 :^ 3 ^^^ 9 ^^ WeaP °" CaSe ' A — " P 

■ cks ' PartS 0f a numan skeleton, A pile of ro 

24 o 2 f ^^^'^ An oid coai a 

t, A large table , A law book d ml " e Snaft ' A sma11 "«boa 

2430 DATA A monument to the dead u,u h 

Id case with awards from long ago A row^of ^ ^ An 

d rusty pipe organ 9 ' row of P ews and a very ol 

24 ta hle AT a A nd A ^opT '"a^i " " ^ * **** A cluttered 

door" ' r ° pe ' A mlnln 9 ca ", some rocks, and a old 

2450 DATA A sign on the wall, A desk « 

ign, "Mirrors all around me There'i, ° f tr6eS and a road 3 
2460 DATA Some writing on the 'win a - n ° Way out '" 

off... except one whxch is covered with' A ° £ pUs Sealed 

he wall, A sign covered with coal. Writing on t 

2470 DATA 4, 0, 5, 0, 3, 0, 17, 10 a ,, „ 

; », 50, 0, 50, 26 50, 33, 200 ' 2 g' II' ?' 28 / ' 2 ' ' 16 
0» 3, 0, 1, , 14 11, 0, a a a ?; 33 ' 50 ' ' 50 ' 2 ' 

2480 DATA 0, 0, 0, 19 « ,% '„ ' ' ' ' 13 

9. 0, 8, 0, 25 '0 9 i 4 '0 'is ' ' 2 ' 0' ?i \ *' »> ™. «, 

. 0, 7, 0, 26, 0, 28, ' ' ' 23 ' ' 13, 0, 0, 0, 33 

2490 D$(0) = "north" : D$(l) = «„ ,„- h » 

= "west" south" : D $(2) = "east" : D$(3) 



114 BASIC Adventures 



Deadly Dungeon 



2500 FOR I = 1 TO P : FOR J = TO 3 : READ P(I, J) : NEXT J, I 
2510 FOR I = 9 TO LO : READ OB$(I) : NEXT I : FOR I - 9 TO LO : 

READ OB(I, 0), OB(I, 1) : NEXT I 
2520 DATA NOR, SOU, EAS , WES, N, S, E, W, LIZ , ZOM, COC, GRA, DW 
A, BAT, TRO, TIG, WOL, DIA, RIN, LAM, CRO, HOL, DEE, PAI, CAS, 
WAT, SKE , ROC, D00 
2530 DATA BOX, PIC, PAP, SHA, BOA, TAB, BOO, TEM, WRI , TRE, PIT, 

WAL, SIG, ROP 
2540 FOR I = 1 TO NN : READ NO$(I) : NEXT I 

2550 DATA GO, GET, TAK, WAL, LEA, DRO, OPE, ENT, EXI, HIT, THR , 
MOV, REA, YEL, SAY, LOO, EXA, FIG, CLI, HEL, SAV, LOA, QUI, IN 
V, SCO, FIN, PLA 

2560 FOR I = 1 TO NV : READ VB$(I) : NEXT I 

2570 GOSUB 1970 : GOTO 50 

2580 FOR AA = 1 TO 1500 : NEXT : RETURN 

2590 FOR AA = 1 TO 700 : NEXT : RETURN 

2600 PRINT "Something gives off a deadly gas."; : GOSUB 2590 : P 

RINT " You are traped. " : GOSUB 2590 
2610 PRINT "You gasp for air." : GOSUB 2580 : GOSUB 2590 : CLS : 

PRINTS 522, "You are >>> DEAD <<<" : GOSUB 2590 : 

GOTO 1890 

2620 IF CP <> OB(NO, 0) PRINT M0 : GOTO 50 

2630 IF CP > 1 AND CP < 6 THEN C2 = RND ( 5 ) : GOTO 2660 

2640 IF CP > 15 AND CP < 19 THEN C2 = RND ( 6 ) : GOTO 2660 

2650 C2 = RND (6) : IF C2 =< 2 THEN C2 = C2 + 4 

2660 PRINT : PRINT "The monster has a combat rating of"; C2 

2670 PRINT : PRINT "Type 'S' to fight with your sword or ' A' to 

shoot arrows" 
2680 A$ = INKEY$ : IF A$ = "" THEN 2680 
2690 IF A$ = "A" THEN GOTO 2830 
2700 IF A$ = "S" THEN GOTO 2720 
2710 GOTO 2680 
2720 IF CI > C2 THEN 2780 

2730 FT = RND (5) : IF FT = 1 THEN PRINT "Your sword cuts into th 
e monster's flesh." : GOSUB 2590 :" PRINT "You slash wildly wit 
h your sword 

and cut off the creature's headl" : OB(NO, 0) = : GOTO 50 
2740 PRINT "You swing at the creature and wound it. " : GOSUB 25 
90 : D = RND ( 5) : IF D = 2 PRINT "You've lost your sword. The 
creature attacks with all of it's strength and kills youi" : G 
0T0 1890 

2750 PRINT " Blood is everywherel" : GOSUB 2590 : PRINT "You thr 

ust at the monster and it dodges. V 
2760 D = RND ( 3) : IF D = 1 PRINT "Your sword sliced the monster 

again and you killed it." : OB(NO, 0) = : GOTO 50 
2770 PRINT "Oh " : GOSUB 2590 : PRINT "You are killed!" : GO 

TO 1890 

2780 PRINT "You instantly thrust your sword at the creature." : 

GOSUB 2590 : D = RND(10) 
2790 IF D = 2 PRINT "The creature makes a surprise attack. You a 

re wounded." : GOSUB 2590 : PRINT "You have been killed 1 " : G 

OTO 1890 

2800 PRINT "The monster is wounded." : D = RND ( 4 ) : IF D = 3 PRI 
NT "You cut the monster's body in half and kill it." : OB(NO, 
0) = : GOTO 50 



Deadly Dungeon 



BASIC Adventures 115 



28 tare PR a I g N a T i :!'r^ h . ^ R^? 08 "* 2590 ' ™™ Mt the crea 

2820 PRINT "Jo, MlT I ? ND( ! ) : IF D = 2 GOTO 2780 ° rea 

2830 PRINT • PRINT "V I ' .! ° B(N °' 0) = " : G0T0 ™ 

u are out'of ?L ? u £ ave "Al" .arrows. » : if Al = print »v n 
2840 IF 06 (NO Zs V „ ° U " e kil1 ^-" • GOTO 1890 *° 
2850 D = rnd?12? - = tp ™ E \ G °™ 50 

770 : print "The creature haTtY'^' miSSed -" : G0SU * 2 

e s... " : GOS US 277 ^ pr tnt v °PP or tunity to strike and do 
2860 IF D = 5 PRINT "Yon r ~ ??" "* kiUed " • GOTO 1890 ° 
: Ai - Al - 1 7 pri2? U Sv "V h i tS the cre "ure... it's dead" 
: GOTO 50 ' Y ° U have " A1 " arrows left" : 08 (NO, 0) = 

2870 print "Vour arrow hits the creature and wounds it. There's 
2880 Al = Al e Y er i'^ere.» : GOSUB 2580 " S 

Al =< THEN 2830 ^ ' GOS UB 2590 : IP 

2900 D = RND ( 2 ) : IF D = I P ri NT «*** v K4 

d center and killed it"' • OBfNO ^ * U hlt the crea ture dea 
" arrows" : GOTO 50 * 0B(N0 ' 0) = : PRINT "You have" Al 

2910 PRINT "*** v^,,*- J 

GOTO 2830 V ° Ur arr ° W mlSs ^" : Al = Al - 1 : G0SU B 2580 • 

2920 PRINT "You missed" : GOTO 2830 




116 BASIC Adventures 



Deadly Dungeon 



Chapter Five 

Revenge of Balrog 
by Don & Freda Boner 



Note: This adventure is the first part of a two-part 
adventure. The Fortress at Times-End is the 
second part and should be played only following 
successful completion of this one. 

The save game routines for this program are for 
tape only. Disk routines may be added by modifying 
lines 1560 to 1670. 



BASIC Adventures 117 



20 P0KE e i6^t n9 «2 f B 2 lrog (c) 1981 b y Donald L * 

w»nr.f 165 f 3 ' "5 : CLEAR 400 : CLS : PRJNT CHR$(23) : A$ ° >L 
venge of the Balrog • : B$ = " By Don * Frlda Bon 

30 FOR I = 64 TO 448 STEP 64 : PRINTS I - 64, " 

1 TO 50 : NEXT J P l INTe *' A$ '' ! PRINT6 960 ' II B$ ! F0R J = 
40 DEFINT A -2 , DEFSTR M : M0 = "I don't see it J" : Ml = . Don . 

M3 = >T T'Zll i ! M2 = " V ? U ? i9ht try •x«inin9 things..?™ 
nothing unusual. " 

■VgotS^sIS b6y0nd ^ P ° Wer i M5 = "I can't • : M6 = "Ok. 

60 VB°= U f)VB = : i G ° SUB ! ™ N ° < 9 AN ° N ° ° AND < VB " OR 

70 IF VB < 9 THEN 110 

90^IF OB(21, 0) - - 1 AND OB(22, 0) = - 1 THEN BB = 2 ELSE BB = 

100 IF VB > AND LEN (N 1$) > AND NO = THEN PRINT "I don't fcn 
110 W lf^ CHR$(34)N1$ CHR$(34)- is- : GOTO 60 " " 

110 IF Nl$ = - AND (VB > 8 OR VB = 2) AND VB < 19 PRINT " dt 

e supply an object" : GOTO 60 Pleas 
120 IF CP = 6 THEN DE = DE + 1 
130 IF CP = 11 THEN CB = CB + 1 
140 IF CP = 25 THEN ED = ED + 1 
150 GOTO 400 

111 t f = c t : x 9 ?^ P NT A 3 6 ™ s p = 15 °. R cp : 36 «™ 2400 

do", : INPUT CM$ ' CHR$ < 94 >' " What should I 

180 VB$ = "" : NO$ ="" • VB = : NO = 

19 U L ^ L ^n\k F l\l : next i c ! A$ ■ MID$(CM ^ « • " 

2?0 N^ LE = N R i G ii $ { CM$ r^ EN . ( ?r )N ° ■ = got ° 220 

"I."? 7 ^0°R $ i I 1 ? T = V N ^ I i V K B$ VB % L - EFT |jr B f' 3) : NO $ = tBrT$0 , 

50 ELSE NEXT I « VB = B$U) THEN VB = 1 : GOT 2 

230 IF Nl$ = -«NO$ = VB$ 
240 VB = : GOTO 260 

250 IF VB$ = CM$ THEN = : NO$ = « rptiirm 
260 FOR I = 1 TO NN : IF NO$ = NO$ ( I ) THPN In r 

NEXT I : NO = : NO$ = • reIuII = I : RETURN ELSE 

"71? B ' CHR$ < 30 > - PR1 ^ « PRINT : PRINT : PRINT : PRINT : 
280 P$ = "I'm " + P$(CP) 
290 PRINTS 64, P$ " " • k - a . rn D r 

CP THEN 330 ' K " ! FOR I = l TO LO : IF OB(I, 0) <> 

300 IF K = PRINT " 
Visible items: "; 

320 PR F IN 3 T + OB P $ °fl) i. + ^TiT + Y 3 PRINT 
330 NEXT I : IF K > PRINT 
340 IF CP = 4 OR CP = 9 OR TP - 1 T r.o ™ 

26 OR CP = 36 OR CP =39 or ~rp - ad = 15 0R CP " 18 OR CP = 
63, 140) : RETURN CP 40 0R CP = 42 PRINT STRING$( 



118 BASIC Adventures 



The Revenge of Balrog 



350 K = : PRINT " 

Obvious exits are: "; : FOR I = TO 3 : IF P(CP, I) = THEN 38 


360 IF K > PRINT " r "; 

370 PRINT D$(I); : K=K+1 

380 NEXT I : PRINT "." 

390 PRINT STRING$(63, 140) : RETURN 

400 IF DE => 2 THEN 2400 

410 IF CB > 3 THEN 2410 

420 IF EP > 3 THEN 2410 

430 ON VB GOTO 450, 450, 640 r 640 r 760, 760, 790, 790, 1020, 109 
0, 1130, 1130, 1160, 1180, 1300, 1370, 1470, 1470, 1480, 1500, 
1560, 1620, 1700, 1750, 1810, 1820, 1310, 1680 

440 PRINT "I don't know how to " CHR$(34)V1$ CHR$(34)" something 
" : GOTO 60 

450 IF NO = PRINT "I need a direction" : GOTO 60 

460 IF NO > 8 THEN 540 

470 IF CP - 25 THEN 600 

480 IF CP = 38 THEN 620 

490 IF CP . = 11 THEN 580 

500 IF NO > 4NO = NO - 4 

510 NO = NO - 1 : IF P(CP, NO) - PRINT "I can't go that wayl" 
: GOTO 60 

520 PRINT "Ok, I went "; D$(NO)"." : CP ■ P(CP, NO) : GOTO 60 
530 PRINT Ml : GOTO 60 

540 IF CP = 4 PRINT "Try EXIT TENT" : GOTO 60 
550 IF CP = 18 PRINT "Try EXIT INN" : GOTO 60 
560 IF CP = 42 PRINT "Try CLIMB DOWN!" : GOTO 60 
570 PRINT "I don't understand you" : GOTO 60 

580 IF OB(51, 0) <> PRINT "You must fight the giant!" : GOTO 6 


590 GOTO 500 

600 IF OB(27, SS) <> PRINT "You must fight the ore!" : GOTO 60 
610 GOTO 500 

620 IF OB(41, 0) <> PRINT "You must fight the guard!" : GOTO 6 


630 GOTO 500 

640 IF NO - 18 OR NO = 21 OR NO = 22 OR NO = 40 OR NO = 43 OR NO 
= 47 THEN 720 

650 IF NO = 11 OR NO - 16 OR NO = 41 OR NO = 33 THEN PRINT "Try 
FIGHT" : GOTO 60 

660 IF NO ■ 45 AND CP = 2 PRINT "A venomous snake springs from t 
he rock and bites me" : GOSUB 2380 : PRINT "You are D 
E A D" : GOTO 1760 
670 IF NO = 38 AND CP = 37 PRINT M5" Try MOVE" : GOTO 60 
680 IF NO * 42, AND CP = 39 PRINT M5" Try UNTIE" : GOTO 60 
690 IF NO = 20 ' AND CP = 18 PRINT M5" It's too heavy" : GOTO 60 
700 IF CP = 6 PRINT "The dragon won't let me I" : GOTO 60 
710 PRINT M4" to get the " CHR$(34)N1$ CHR$(34) : GOTO 60 
720 IF CP <> OB (NO, 0) PRINT M0 : GOTO 60 

730 IF ZZ + 1 > 4 PRINT "I'm carrying too much !" : GOTO 60 
740 ZZ = ZZ + 1 : OB (NO, 0) = - 1 : PRINT M6 : GOTO 60 
750 PRINT Ml : GOTO 60 

760 IF OB (NO, 0) <> - 1 PRINT Ml : GOTO 60 
770 ZZ = ZZ - 1 : PRINT M6 : OB(NO, 0) - CP 



The Revenge of Balrog 



BASIC Adventures 119 



780 GOTO 60 

800 IF NO I 4! AND N rp = ^ READ" : GOTO 60 

810 IF NO = \\ AND S I «%' °^ 5 '. 8) - = ^ J G0T ° 60 

90 : print ■ p.„m k fKiNT Something's inside" : GOSUB 23 

820 IF NO =13 ANn 5 trap? " : G0T0 60 

(22, 0? = S Two 60 4 "6-LooM,- : OB ( 21, 0, = CP , 06 

840 " NO I 17 AND CP - \l SJ" " Somethi "9 ' * inside" : GOTO 60 
TO 60 ° CP _ 16 PRINT "6'Lookl- : OB(18, 0) = C P : GO 

85 O TO F 60° = 18 AN ° 0B(18 ' «)<>-! PRINT "I don't have it," • G 
86 OTO P 6r = " 0BU8 ' "> = " 1 PRINT M6 : 0B<43, 0) = CP • G 

880 IF NO° = = \\ Z C C P P - = £ P R RI C N P T ° B < 47 ' «> = « • GOTO 60 

890 e ip r c e p e i %r r- s wit "^- s «" T " The north side of ' 

"I can't ifwh'js 28 ?"" *. "r™ CP " 31 ° R CP = ^ PRINT 
900 IF NO - u » M n Jn gomg on" : GOTO 60 1 

IF NO = 29 AND cl - 11 S UM.^'? 8 '.^ = CP ■ G °™ 60 
920 IF NO = 39 AND TP - Xn III Cllmb lt: : G °T0 60 

930 IF NO - 40 AND CP - 7 ? ^ Sl-Sjf (4 f: 0) = CP • GOTO 60 
GOTO 60 PRINT M6 Ifc s the magical sword - « 

940 IF NO = THEN 1000 
950 IF NO > 8 THEN 1000 
960 IF NO > 4NO = NO - 4 

980 IFPfCP \l % 'I CP = 42 THEN 990 
990 PRINT "Oka v T PRINT M1 ! G0T0 ™ 

1000 IF NO ^'and^P t°T 7 th AlV- ;^ (N0) = G0T ° 60 

I^PRInI ^OToir 1 — e " 1 '" .'•SS , - lt " ' G ° 

1> 30 S N N 0° I g AND C C P P iYp^VmV « • G 0™ 60 

1040 IF NO = 26 AND CP = 17 PRInS ml ' « = 13 1 G0T0 60 
1050 IF NO = 19 AND CP = 17 PR R !I ! C f = « « GOTO 60 
1060 IF NO = 9 AND CP = 1 print L L° P = 18 : G0T0 * 
1070 IF NO = 9 AND CP = 10 print L'' °L = 2 ' G0T0 60 
1080 PRINT M4 : GOTO 60 M6 : CP = 11 . G0T0 60 

1090 IF NO = 12 AND CP = 4 print „ n 

1100 IF NO = 26 AND CP = 18 PRINT MK * °L= 3 S G0T0 60 

1110 IF NO = 19 AND CP = 18 pItkI 2! * " = 19 : G °™ 60 

1120 PRINT M4 : GOTO 60 : = 19 : GOTO 60 
1130 IF NO = 28 AND itd - 

, t have the key , - : goto 60 N ° ^ ' "> <> " D PRINT "I don 1 

U50 PR F IN N T° ;i 28 G A O N T D O C 6 P = ^ ^ CP = 27 : GOTO 60 

"i"h" :°GO = TO 6 60° R N ° = U °* "° ■ 01 0* NO = 33 PRINT «■ Try F 
1170 PRINT M4 : GOTO 60 
1180 IF CP <> 25 THEN 1220 
1190 IF NO = 16 AND 8B <> 2 PRINT m*« .u 

: GOSUB 2380 : print - You are dea ^f. .' ^^^f powerln « me 
1 • 1760 : GOTO 60 



120 BASIC Adventures 



The Revenge of Balrog 



1200 IF NO = 16 THEN D = RND(15) : IF D <> 7 PRINT M6" You seem 
to have some magical power and killed the ore !" : OB(27. 0) = 
: GOTO 60 

1210 PRINT "You attack the ore" : GOSUB 2380 : PRINT "Oh no" • G 

OSUB 2390 : PRINT "You are dead" : GOTO 1760 
1220 IF CP <> 38 THEN 1250 

1230 IF NO = 41 AND OB(40, 0) <> - 1 print M6" The Palace Guard 
is more prepared for battle" : GOSUB 2380 : PRINT " You are de 
ad" : GOTO 1760 

1240 IF NO = 41 PRINT M6" You thrust your sword at the guard" : 

GOSUB 2380 : PRINT "He is dead" : OB(41, 0) = : GOTO 60 
1250 IF CP <> 11 THEN 1280 

1260 IF NO = 33 AND BB <> 2 PRINT "I have nothing to fight with 

1" : GOSUB 2380 : PRINT " The giant ripped me in half!" : GOSU 

B 2390 : PRINT " You are dead!" : GOTO 1760 
1270 IF NO = 33 PRINT "The giant vanished into a green cloud of 

smoke!" : OB(51, 0) = : GOTO 60 
1280 IF NO = 37 AND CP = 19 PRINT "I think you should leave him 

alone !" : GOTO 60 
1290 PRINT M5" Fight it " : GOTO 60 
1300 PRINT M4" Try DROP" : GOTO 60 

1310 IF NO = 14 AND CP = 8 PRINT M6 : CP = 42 : GOTO 60 

1320 IF NO = 14 PRINT "I can't do that here" : GOTO 60 

1330 IF CP = 42 AND NO = 31 PRINT M6 : CP = 8 : GOTO 60 

1340 IF NO = 29 AND CP = 40 PRINT M6" I'll try to" : GOSUB 2380 

: PRINT "I'm close to the top now " : CP = 41 : GOTO 60 
1350 IF NO = 24 AND CP = 10 PRINT M5" "Vl$ " the "Nl$ : GOSUB 23 

80 : PRINT " Try walking north !" : GOTO 60 
1360 PRINT Ml : GOTO 60 

1370 IF NO = 10 AND CP = 2 PRINT M6" It says: 

dragon, and the stream" : GOTO 60 
1380 IF CP <> 16 THEN 1410 

1390 IF NO = 43 AND OB(43 r 0) <> - 1 PRINT M5" It's in the bottl 
e" : GOTO 60 

1400 IF NO - 43 PRINT M6" it says: To let nature lead you out" : 
GOTO 60 

1410 IF NO = 10 AND CP = 17 PRINT M6" it says 
n" : GOTO 60 

1420 IF NO = 10 AND CP = 35 PRINT M6" **** KEEP OUT ****•' 
TO 60 

1430 IF NO = 10 AND CP = 39 THEN 1440 ELSE 1460 

1440 PRINT M6"Congratulations. You have rescued the princess" : 
GOSUB 2380 

J.450 PRINT "But Balrog is inside the castle with the necklace. T 
o enter the castle and recover the necklace play " CHR$(34) "F 
ortress at Time's End" CHR$(34) : GOSUB 2380 : GOTO 1760 

1460 PRINT M5" I see nothing to read" : GOTO 60 

1470 PRINT " Okay.... "Nl$ : GOTO 60 

1480 INPUT "Do you really want £o quit now?"; X$ : IF LEFT$(X$, 

1) = "y" THEN 1490 ELSE PRINT "I didn't think so" : GOTO 60 
1490 CLS : END 

1500 if CP = 6 PRINT "Leave at once" : GOTO 60 

1510 if CP » 8 PRINT "I don't like the looks of this place" : GO 



Beware trees, the 



Wild Stallion In 



GO 



TO 60 



The Revenge of Balrog 



BASIC Adventures 121 



1520 IF CP - 21 OR CP = 22 OR CP = 23 OR CP = 24 PRINT "I'm just 

as confused as you are" : GOTO 60 
1530 IF CP = 27 OR CP = 28 OR CP = 30 OR CP =31 OR CP - 32 PRIN 

T "I know of no easy way out" : GOTO 60 
1540 IF CP = 42 PRINT "Climb down" : GOTO 60 
1550 PRINT M2 : GOTO 60 

1560 CLS : INPUT "Press enter when ready"; : YY 
1570 FOR I ■ 1 TO LO 
1580 PRINT#-1, OB(I, 0) 
1590 NEXT I 

1600 PRINT#-1, CP, ZZ, T, BB, 
1610 GOTO 60 

1620 CLS : INPUT "Press enter when ready"; YY 
1630 FOR I = 1 TO LO 
1640 INPUT#-1, OB(I, 0) 
1650 NEXT I 

1660 INPUT#-1, CP, ZZ, T, BB 
1670 GOTO 60 

1680 IF NO = 38 AND CP = 37 PRINT M6 : OB(38, 0) = : OB(39, 0) 

= CP : GOTO 60 
1690 PRINT M4 : GOTO 60 

1700 IF ZZ = PRINT "nothing !" : GOTO 60 

1710 PRINT "Currently I'm carrying : — "; : FOR I = 1 TO LO : I 

F OB(I, 0) <> - 1 THEN 1740 
1720 IF 3 + POS(0) + LEN(OB$(I)) > 63 PRINT 
1730 PRINT OB$ (I) " — "; 
1740 NEXT I : PRINT : GOTO 60 

1750 PRINT " In this adventure"; : GOSUB 2390 : PRINT " there is 

no score" : GOTO 60 
1760 PRINT : PRINT i* PRINT "Play again (Y/N) " 
1770 A$ = INKEY$ : IF A$ = "Y" OR A$ = "N" THEN 1790 
1780 GOTO 1770 
1790 IF A$ - "Y" RUN 
1800 CLS : END 

1810 PRINT " I don't know where " CHR$(34)N1$ CHR$(34)" is" : GO 
TO 60 

1820 IF NO <> 42 PRINT Ml : GOTO 60 

1830 IF CP = 39 PRINT M6 : OB(42, 0) = : PRINT "The princess i 

s free 1" : OB(50, 0) - CP : GOTO 60 
1840 GOTO 1950 
1850 CLS 

1860 PRINT "*** Adventure Version 3.2 Copyriqht (c) 1981" 
1870 PRINT "By Don & Freda Boner" 

1880 PRINT : PRINT " Welcome to the exciting world of a 

dventurei" 
1890 PRINT 

1900 PRINT "The evil Balrog of Triad has kidnapped Princess Cele 
ste, Granddaughter of the Great White Wizard Wilgus, an 

to ?!< fc he ancient magical ruby necklace. You must find the 
ml I'll be your" 

1910 PRINT "eyes and hands. Direct me with ordinary one or two w 
ord sentences. Some examples are: " CHR$(34)"GO NORTH" 

CHR$(34)", " CHR$ (34) "FIGHT GUARD" CHR$(34)" ■ CHR$(3 

4) "INVENTORY" CHR$(34)", and " CHR$(34)"GET HAT" CHR$(34)"." 



122 BASIC Adventures 



The Revenge of Balm 



ia™ print "If this adventure is taking you too long to solve, y 
19 can save the game by typing -CHR| ><34) ,-SAVB" ^$(34 " To^l 
oad a previously saved game, type" CHR$(34) LOAD CHR5(i4) . 

1930 PRINT " V : 

Press the space bar to begin... , 

,OBS(LO), OB(LO, 0), P$(P), PCP. 3), VB$(NV) 
I960 PRINTS 640,; : AS = " Graylockland ^dness : FORI 1 
TO LEN(AS) : PRINT MID$(A$, I, 1); : X = SQR(9999) . NE.X1 1 

1970%$ (1) = "outside a village in the Realm of Flowers" : PS (2) 
= -near the marshes" : P$(3) = "at an old ore encampment 

iiSS p"4) 2 = ^inslde'the SinJi :'p $ '(5?'= "in the dark marsh" : P 

2000 6 p$( 7 ; i = "at XeJllltl in the path" : DATA 0, 0, 0, 0, 6, 

0, 0, 10, 0, 5, 0, 0, 10, 8, 3, 5 e « surrounded bv tre 

2010 P$(8) = "in the rocky terrain" : P$(9) - surrounoea Dy tre 

es and Ents" : P$(10) - "at the bottom ° f a™""" 1 " . fl 
2020 P$(1D = "half way up the mountain" : DATA 7, 9, 0, 0, 0, 

, 0, 0, 11, 7, 0, 8, 12, 0, 0, _ . lnsid 

2030 P$(12) = "near the top at a ^rrow ledge" : P$(13) - insid 

e a cave* : PS (14)- = "past the mountain" : PS (15) - falling f 

2 0^OATA 1 0: f 0, 0, 14, 0, ? , • , ^I^An'the'viIlVof li 
2050 PS(16) = "in Delta Valley" : P$(17) - in tne vixiage 

acks" : P$(18) = "inside the Wild Stallion Inn" 
2060 PS (19) = "outside the village' : DATA 0, 17, 0, 0, 0, 21, 

, 6, 0, 0, 0, 0* 0f 20 » ' 21 , , „ „-,,„ «i n the da 

2070 P$(20)'= "in a field with high weed s" : PS ^ ~ ™ d. 
rk forest" : P$(22) = P$(21) : PS(23) - P?(21> . v*\*«) 

2080 DATA 0, 0, 0, 21, 0, 0, 0, 22, 21, 23, 0, 0, 24, 0, 22, 22, 
2090 5 p$U5) 2 = '"just outside the forest" : PS (26) = "at the edge 

2100 P$(27) = "in some kind of time tunnel" : PS( 28 > = ,^ $( " ) : 
DATA 26 21, 0, 0, 0, 0, i. 28, 0, 29, 0, 30 , 0, 29 , 27 

2110 P$(29) = P$(27) : P$(30) - P f ( "> ^ 28 32, 

) = PS(27) : DATA 0, 27, 0, 28, 28, 0, 31, 29, 29, II, l*. 

2120 3 PS (33) 2 =' "moving through, light and energy field" : PS (34, 

= "at the edge of Darkness" : P$(35) - at tne wisty 
2130 P$(36) = -in the country side" : DATA 34, 0, 0, 0, 35, 0, 

, 27, 36, 0, 0, 37, 0,0, 0, ® ,. ft , _ « near tne castle ground 
2140 P$(37) = "past the Moor" : P$(38) - near tne cdbtic y 

21 S 50 P$(39) = -at Starfarer's Castle at the Fortress at Time's E 
nd" : DATA 40, 0, 0, 0, 39, 0, 0,0, i; » ' J = . tne 

2160 P$(40) = "at the bottom of a high cliff" : P$(41) - at tne 

top of the cliff" „ a on q ic 3g, 

2170 P$(42) = "up in the tree" : DATA 0, 0, 0, 0, 27, 9, 15, i», 

0, 0, 0, 



The Reuenge of Balrog 



BASIC Adventures 123 



2180 DATA a path surrounded by weeds, a sign, a dragon trying to 

attack, a large tent, a small table 
2190 DATA some small trees, a small cave, stalactites on the cei 

ling, a river, a bottle 
2200 DATA a building with a sign, a large box, a hat, a war knif 

e, a large tree, a large tree 
2210 DATA a large tree, a large tree, an ore ready for battle, a 

locked gate, a large gray rolling jet stream 
2220 DATA a flashing orange and red light-ray 

2230 DATA objects moving by me so fast they are blurred, a rolli 
ng deep purple cloud, a bright light up ahead, a sign to the n 
orth 

2240 DATA a fire breathing dragon, some trees, a foul smell in t 
he air 

2250 DATA a large canvas, a dead soldier, the sword of Vishtori, 
the evil palace guard, the princess tied to a tree, a letter 

2260 DATA a stream, a glowing rock, some gold' nuggets, a key, a 
path going north into the mountains, the forbidden mountain, a 
sign 

2270 DATA the Storm-Cap Giant, a deformed notman 

2280 DATA 1, 2, 6, 3, 4, 8, 12, 13, 16, 0, 17, 18, 0, 0, 21, 22, 
23, 24, 25, 26, 27, 28, 29, 30, 32, 35, 36, 37, 37, 0, 0, 0, 

38, 39, 0, 2, 0, 6, 0, 10, 10, 0, 11, 19 
2290 D$(0) = "north" : D$(l) = "south" : D$(2) = "east" : D$(3) 

= "west" 

2300 FOR I = 1 TO P : FOR J = TO 3 : READ P(I, J) : NEXT J, I 
2310 FOR I = 9 TO LO : READ OB$(I) : NEXT I : FOR I = 9 TO LO : 

READ OB (I, 0) : NEXT 
2320 DATA NOR, SOU, EAS , WES, N, S, E, W, PAT, SIG, DRA, TEN, TA 
B, TRE, CAV, ORC, RIV, BOT, BUI, BOX, HAT, KNI, CAS, MOV, FIE, 
INN, MAR, GAT, CLI, LIG 
2330 DATA DOW, CLO, GIA, FOR, WRI, VIL, NOT, CAN, SOL, SWO, GUA, 

PRI, LET, STR, ROC, GOL, KEY, STA 
2340 FOR I = 1 TO NN : READ NO$(I) : NEXT I 

2350 DATA GO, WAL, GET, TAK, LEA, DRO, LOO, EXA, ENT, EXI , OPE, 
INL, HIT, FIG, THR, REA, SAY, YEL, QUI, HEL, SAV, LOA, INV, SC 
0, FIN, UNT, CLI, MOV 

2360 FOR I = 1 TO NV : READ VB$(I) : NEXT I 

2370 GOSUB 1850 : GOTO 60 

2380 FOR AA - 1 TO 1500 : NEXT : RETURN 

2390 FOR AA = 1 TO 500 : NEXT : RETURN 

2400 PRINT : PRINT STRING$(63, 140) : PRINT : IF CP = 13 PRINT " 
You have disturbed the rest of the feared Alabastrian Batman!" 
: GOSUB 2380 : PRINT "He eats youi" : GOTO 1760 

2410 PRINT "*** WATCH OUT": GOSUB 2380 : PRINT : IF 

CP = 6 OR CP = 11 OR CP = 25 PRINT " You have waited to long" 
: GOSUB 2390 : PRINT " You are dead" : GOTO 1760 

2420 PRINT "You are dead " : GOTO 1760 




124 BASIC Adventures 



The Revenge of Balm 



Chapter Six 

The Fortress at Times-End 
by Don & Freda Boner 




Note: This program is the second part of an 
adventure which started with Revenge of Balrog. 
This adventure should be played following 
successful completion of Revenge of Balrog. 

The save game routines for this program are for 
tape only. Disk routines may be added by modifying 
lines 1690 to 1800. 



BASIC Adventures 125 



M III T2f AT TIME 'S END 

20 REM (C) 1981 BY DONALD L BONER and 
30 REM FREDA L BONER, USA 

ss'atVme^s end°° M \i LS I PRINT CHR$(23) : A$ " " THE F0R ™ 

50 FOR t - L ™ ■ B$ = BY D0N & FREDA BONER" 

50 FOR I = 64 TO 448 STEP 64 : PRINT @ I - 64, " 

1 TO 50 : NEXT J P I INTe A$ '' ! PRINTS 960 ' II B$ •' F0R J = 

"sfm^M A V i DEFSTR " ! m m " l don,t see ttl- : Ml = -Trv 
70 S M 3 e - h ii g s !' Se =. M2 = " You mi 9 ht "V examining things." ^ 
• K Se f no " ln g unusual!" : M4 = "That's beyond my power 

80 rn „« 5 Z 1 Ca " tf : m " " 0ka y' " « GOTO 1950 P ' 

80 = GOSUB 370 : GOSUB 230 : IF NO < 13 AND NO > AND (VB = 0) VB 

90 IF VB = 27 THEN 500 
100 IF VB < 5 THEN 160 

\\l tI ,« = J' ° R VB = 18 0R VB ' " THEN 160 
120 IF VB = 7 OR VB = 8 THEN 160 

140 fp nLL 29 ° R VB " 27 0R VB = 26 THEN 170 

140 IF 0B(56, 0) = - 1 AND FT > 2 THEN BB = 2 • ELSE BB - 1 

i50 IF VB > AND LEN (Nl$) > AND N0 = THEN " PRINT "I don • r V 

160 W IF N1S* » H ^ 3 1 )N1S CHR ?(34)» is." : GOTO 80 ^ % 

R VB = 2 VoR VB - isf pp^V* = 2) AN ° (VB < 19 0R VB = 26 
8a 27 ° R VB " 28) PRINT » PLEASE SUPPLY AN OBJECT" : GOTO 

170 IF CP = 23 THEN A = 1 
180 IF CP = 24 THEN B = 1 

190 IF CP = 33 AND OB(41, 0) = - 1 THEN A - 5 
200 IF CP = 20 THEN DB =0 5 

220 GO F TO P 500 12 CP < 20 THEN 

z: s c a p b : ivrv.v&^\\v vb = 23 = «"° " 

S ^P^^rG^B^^^^ ^ ' «*> 

270 T = T + 1 : PRINT@ 960, " « . P hr<:/q^ .„ u 

: INPUT CM$ ' CHR$(94); "What should I do 

280 VB$ = : NO$ = "" : VB = • no - a 
290 LC = LEN (CM$ ) : FOR I = 1 to r'r *J 

A$ <> " "VB$ = VB$ T A$ • NEXT I ' A$ = MID$ < CM $' M « IF 

mL LEN(VB$) + 1 >= L EN(CM$)NO = : GOTO 320 
310 NO$ = RIGHT$(CM$, LC - I ) 

320 Nl$ = NO$ : Vl$ = VB$ : VB$ = LEFT* ft/a* ^ 

$, 3) : FOR I = 1 to NV ' IF VRS - I. ' 3) 1 N0$ = kFFT$ (NO 
50 : ELSE NEXT I s VB - $ " VB$(I) THEN VB " I : GOTO 3 

330 IF Nl$ = ""NO$ - VB$ 

340 VB = : GOTO 360 

III lL V r $ = CM$ THEN = : NO$ = - . RETURN 
360 FOR I - 1 TO NN s IF NO$ = NO$(I) THEN In r 

E NEXT I : NO = : NO$ - ■» - rpt idn NO = I • RETURN : ELS 
370 PRINTS 0, CHR$(30) : print ' PRTmt » dt 

II = ^ KINT " PRINT : p RINT : print : PRINT : 

380 P$ = -I» m ■ + p$( C P) 
390 PRINTS 64, P$ " . " : K = • pod t 

CP THEN 430 FOR I = 1 TO LO : IF OB(I, 0) <> 



126 BASIC Adventures 



The Fortress at Times-End 



400 IF K - PRINT "Visible Items: "; 
410 IF 3 + POS(0) + LEN (OB$ (I) ) > 63 PRINT 
420 PRINT OB$(I)". "; : K = K + 1 
430 NEXT I : IF K > PRINT 

440 IF CP = 1 OR CP = 7 OR CP = 12 OR CP - 20 OR CP = 26 OR CP = 
35 OR CP = 38 OR CP = 39 OR CP = 40 OR CP = 41 PRINT STRING$( 

63, 140) : RETURN 
450 K = : PRINT "Obvious exits are: " ; : FOR I = TO 5 : IF P 

(CP, I) = THEN 480 
460 IF K > PRINT " , " ; 
470 PRINT D$ (I) ; : K = K + 1 
480 NEXT I : PRINT "." 
490 PRINT STRINGS (63, 140) : RETURN 
500 IF DB > 9 GOSUB 2420 

510 IF CP = 12 AND VB <> 5 OR VB <> 6 THEN 530 
520 IF CP = 12 AND NO <> 56 THEN 2670 

530 ON VB GOTO 550, 550, 690, 690, 810, 810, 910, 910, 1200, 129 
0, 1320, 1320, 1390, 1400, 1470, 1490, 1560, 1560, 1580, 1600, 
1680, 1750, 1830, 1890, 1940, 810, 1480, 1810, 890 

540 PRINT "I don't know how to " CHR$(34)V1$ CHR$(34) n something 
" : GOTO 80 

550 IF NO = PRINT "I need a direction" : GOTO 80 
560 IF NO > 12 THEN 630 
570 IF CP - 25 THEN 640 
580 IF CP = 3 THEN 670 
590 IF NO > 6NO = NO - 6 

600 NO = NO - 1 : IF P(CP, NO) = PRINT "I can't go that way!" 
: GOTO 80 

610 PRINT "Ok, I went "D$(NO)"." : CP = P(CP, NO) : GOTO 80 

620 PRINT Ml : GOTO 80 

630 PRINT M5"go "Nl$ : GOTO 80 

640 IF NO = 2 OR NO = 8 THEN 590 

650 IF A <> 1 AND B <> 1 PRINT M5"yet" : GOTO 80 
660 GOTO 590 

670 IF CP - 3 AND OB(38, 0) <> PRINT "Zap-o-ree " : GOSUB 2650 
: PRINT "My hat vanished and the sword turned into a pipe" : 

OB(38, 0) = : OB(40, 0) = : OB(56, 0) = - 1 : ZZ = 2 : VB 

= 23 : GOTO 530 
680 GOTO 590 

690 IF NO - 17 OR NO - 36 OR NO ■ 39 OR NO = 41 OR NO = 43 OR NO 

= 47 OR NO = 54 OR NO = 56 THEN 770 
700 IF NO = 18 OR NO = 23 OR NO = 34 OR NO = 42 OR NO = 45 OR NO 

= 46 THEN PRINT M5"it f s too heavy" : GOTO 80 
710 IF CP = 6 AND NO = 19 PRINT LEFT$(M6, 4) : GOTO 2670 
720 IF CP = 11 AND NO = 22 THEN NO = 41 : PRINT " you mean the w 

ine !" : GOTO 770 
730 IF CP > 12 AND CP < 16 PRINT Ml" It's best to leave such thi 

ngs alone" : GOTO 80 
740 IF CP = 16 AND NO = 28 PRINT LEFT$(M6, 4) : GOTO 2670 
750 IF CP > 16 AND CP < 20 PRINT Ml" It's best to leave such thi 

ngs alone" : GOTO 80 
760 PRINT M4"to get the " CHR$(34)N1$ CHR$(34) : GOTO 80 
770 IF CP <> OB(NO, 0) PRINT M0 : GOTO 80 

780 IF ZZ + 1 > 4 PRINT "I'm carrying too much!" : GOTO 80 

790 ZZ = ZZ + 1 : OB(NO, 0) = - 1 : PRINT LEFT$(M6, 4) : GOTO 80 



The Fortress at Times-End 



BASIC Adventures 127 



800 PRINT Ml : GOTO 80 

810 IF NO = 22 THEN NO = 41 

820 IF NO = 41 THEN A = 

830 IF OB(NO, 0) <> - 1 PRINT Ml : GOTO 80 

840 ZZ = ZZ - 1 : PRINT LEFT$(M6, 4) : OB(NO, 0) - CP 

850 IF NO = 41 AND CP <> 30 THEN 2670 

860 IF NO = 17 AND CP = 20 THEN OB(33, 0) = CP 

870 IF CP = 12 AND NO = 56 THEN OB(24, 0) = CP 

880 GOTO 80 

890 IF CP <> 30 PRINT Ml : GOTO 80 

900 PRINT M6"can do ! " : GOSUB 2650 : GOTO 2670 

910 IF CP <> OB(NO, 0) THEN 1050 

920 IF NO - 14 PRINT M6"it's a portrait of Bnai T' Loth, the Red 

Warlock of Death" : GOTO 80 
930 IF NO m 15 PRINT M6"but I don't think I should tell you what 
I see" : GOSUB 2650 : PRINT "It's not a " CHR$ ( 34 ) "G" CHR$(34 

)" rated statue." : GOSUB 2640 : ELSE 950 
940 PRINT "Wait a minute... There is a plaque on the statue — a 

nd it says, Aphrodite will tempt you. Above all "; 
950 IF CP = 4 PRINT "remember.... follow" : GOTO 80 
960 IF NO = 16 PRINT LEFT$(M6, 4) : OB(17, 0) = CP : GOTO 80 
970 IF NO ■ 18 PRINT "Maybe you should open it" : GOTO 80 
980 IF NO = 32 PRINT M6"there is writing on it" : GOTO 80 
990 IF NO = 34 PRINT LEFT$(M6, 4) : OB(35, 0) = CP : GOTO 80 
1000 IF NO - 35 PRINT "WHAT !•" : GOSUB 2640 : OB(36, 0) = 

CP : GOTO 80 

1010 IF NO = 42 PRINT LEFT$ (M6 , 4) : OB(43, 0) = CP : GOTO 80 
1020 IF NO = 28 PRINT M6"could that come in handy?" : GOTO 80 
1030 IF CP > 12 AND CP < 20 PRINT "I don't like any of this" : G 

OSUB 2650 : PRINT "It's best to leave such things alone " : GO 

TO 80 

1040 PRINT M3 : GOTO 80 

1050 IF CP = 30 AND NO = 32 PRINT M6"it's a feast fit for a king 

— except there is no wine" : GOTO 80 
1060 IF CP = 31 AND NO = 13 PRINT LEFT$ (M6 , 4) : OB(47, 0) = CP 
: GOTO 80 

1070 IF CP = 11 OR CP = 1 OR CP = 31 OR CP = 33 OR NO = 33 OR NO 

=> 12 THEN 1080 : ELSE GOTO 1190 
1080 IF CP = 11 AND NO = 16 PRINT LEFT$(M6, 4) : 0B(41, 0) = CP 
: GOTO 8 

1090 IF NO = 48 OR NO - 24 PRINT "Try READ" : GOTO 80 

1100 IF NO = 33 OR NO = 50 PRINT "Try ENTER" : GOTO 80 

1110 IF NO > 12 PRINT M0 : GOTO 80 

1120 IF NO = PRINT M0 : GOTO 80 

1130 IF NO > 12 THEN 1180 

1140 IF NO > 6N0 = NO - 6 

1150 NO = NO - 1 

1160 IF P(CP, NO) = PRINT Ml : GOTO 80 

1170 PRINT "Okay, I see something to the "D$(N0) : GOTO 80 
1180 PRINT M3 : GOTO 80 
1190 PRINT M0 : GOTO 80 

1200 IF CP = 1 AND 0B(13, 0) <> PRINT M5"yet" : GOTO 80 

1210 IF CP = 1 AND NO = 13 PRINT LEFT$ (M6, 4) : CP = 2 : GOTO 80 



128 BASIC Adventures 



The Fortress at Times-End 



12 20 IF CP - 12 M.D NO = 33 PRINT LEFT$ (M6 , 4) : CP = 13 : GOTO 
12 3$ IF CP = 20 AND OB(33, 0) = CP PRINT LEFT$ (M6 , 4) : CP = 21 
12 ^Tf°CP = 26 AND NO - 33 PRINT LEFT$ (M6, 4) : CP - 27 = GOTO 

»" » " " fs EE °0 B B ( (S' SI = - S^ISK S : CP = 36 

1260 IF CP - 35 AND OB(bW, w j 

127 G IF O CP = 38 AND NO = 51 PRINT LEFTS(M6, 4) , CP - 39 -GOTO 
80 

IfTp ANdVo = 33 PRINT LEFT$ (M6 , 4) : CP = 26 : GOTO 

13 8 IF CP = 39 AND NO = 51 PRINT LEFT $ («6, 4) = CP = 38 : GOTO 
[III jfg tTZ^Vd P^NT 8 LfT $ (M6, 4) : 0B(19. 0) = CP : 
13 3 G O IF NO = 22 OR NO = 41 PRINT H 6«X » thirsty" , CP - 31 : GO 
TO 2670 M ddtwt M6"it's some stairs going down" 

134 ! llstl ^LTpRINT ^iT^wnere it ta.es me." = CP = 8 : 

G0T0 80 io * N n OB(24 0) - CP PRINT "It's a narrow, dark ha 
1350 IF CP = 12 AND OB(Z<i, 

11 going down " t GOTO 80 GOTO 80 

il« \l 11 I g AND S^VUm iK(M6. 4) : OB(49, 0) = ° - 

OB (50. 0) = CP : GOTO 80 
13 80 B PRINT LEFT 5 («4 22, : GOTO 8 
1390 PRINT M4"try FIGHT . o 

omething is wrong" : ELSE PRINl 
1 430 e i t F D a =" 2 PRINT "Vour sword cut the Balrog's left arm off . 
144 E Tf D RI = NT 3 ;HEN iS 2670 r :"ELSE PRINT "I can bearly see... Blood 

is in my eyes." . deadl! « : ELSE GOTO 80 

1450 IF D = 1 OR D = 5 PRINT He is dea _ # ? qoTO 80 

1460 OB(54 r 0) = CP : OB 55, 0) 

1470 PRINT M5"try drop" : GOTO 80 

1480 GOTO 1560 print M6"it says: If you have left t 

:-"«ffl lVc"'™> - a - - 00T0 " 

«j> / a *i a\ m - 1 PRINT M6"it says: to move on 
1510 IF CP = 23 AND OB(43, 0) l 

, try reading " : GOTO _ PRINT M6"it says: You have con 

1520 IF CP = 41 AND OB(53 f 0) - ^ RINT ^ nnerl -% GOTO 1900 

qaered the evil force and are tne 



The Fortress at Times-End 



BASIC Adventures 129 



1530 IF CP = 39 AND NO = 48 PRINT M6 CHR$ ( 34 ) "SAY" CHR$(34) n the 

password" : GOTO 80 
1540 PRINT M0 : GOTO 80 

1550 PRINT M5"I see nothing to read" : GOTO 80 

1560 PRINT " Okay.... "Nl$ : IF CP = 39 AND NO = 52 THEN CP = 40 
1570 GOTO 80 

1580 INPUT "Do you really want to quit now"; X$ : IF LEFT$(X$, 1 

) = "Y" THEN 1590 : ELSE PRINT "I didn't think so" : GOTO 80 
1590 CLS : END 

1600 IF CP = 1 PRINT M6"you hear a great creaking sound" : GOSUB 
2650 : PRINT " The drawbridge comes clattering down... 

Thud!" : OB (13, 0) = : GOTO 80 

1610 IF CP = 12 PRINT "Just look around" : GOTO 80 

1620 IF CP = 30 PRINT "I don't know about you, but I would like 
to eat now!" : GOTO 80 

1630 IF CP = 39 PRINT "I can't "; : GOSUB 2650" remember ! " : GOTO 
80 

1640 IF CP = 32 PRINT "Go East and I may help" ; GOTO 80 

1650 IF CP = 31 AND OB(41, 0) <> - 1 PRINT "There is a trap door 

here somewhere" : GOTO 80 
1660 IF CP > 12 AND CP < 20 PRINT "If I were you I would go "; : 

FOR X = 1 TO 3 : NO = RND (6) : NO = NO - 1 : PRINT D$(NO)", " 
; : PRINT "or try "; : NEXT X : GOTO 80 
1670 PRINT M2 : GOTO 80 

1680 IF CP > 7 AND CP < 21 PRINT M5"you must get out of this maz 

e first!" : GOTO 80 
1690 CLS : INPUT "Press ENTER when ready"; YY 
1700 FOR I = 1 TO LO 
1710 PRINT#-1, OB(I, 0) 
1720 NEXT I 

1730 PRINT#-1, CP, ZZ, T, BB, 
1740 GOTO 80 

1750 CLS : INPUT "Press ENTER when ready"; YY 
1760 FOR I = 1 TO LO 
1770 INPUT#-1, OB(I, 0) 
1780 NEXT I 

1790 INPUT#-1, CP, ZZ, T, BB 
1800 GOTO 80 

1810 IF CP <> 31 PRINT LEFT$(M4, 22) : GOTO 80 

1820 IF NO = 13 PRINT M6"I'll try" : GOSUB 2650 : PRINT "Super. 

It's a secret passage" : GOSUB 2650 : PRINT "Let's see where i 

t leads" : CP = 33 : GOTO 80 
1830 IF ZZ = PRINT "nothing!" : GOTO 80 

1840 PRINT "Currently, I'm carrying: " : FOR I = 1 TO LO IF OB 

(I, 0) <> - 1 THEN 1870 * 
1850 IF 3 + POS(0) + LEN(OB$(I)) > 63 PRINT 
1860 PRINT OB$ (I) ", n ; 

1870 NEXT I : PRINT : IF CP = 1 GOSUB 2640 : GOSUB 2640 
1880 GOTO 80 " 
1890 PRINT "In this adventure"; : GOSUB 2650 : PRINT " there is 

no score" : GOSUB 2640 : GOSUB 2650 : GOTO 80 
1900 PRINT : PRINT : PRINT "Play again? (Y/N)"- 

1910 A$ = INKEY$ : IF A$ = "Y" OR A$ = «N" THEN 1920 ELSE 1910 



130 BASIC Adventures 



The Fortress at Times-End 



1920 IF A$ = " Y " RUN 
[III PRINT Tdon^t .now where - CHRS(34) N 1 $ CHR S (34)" is" = 

80 
1950 GOTO 2010 

i960 CLS ,„ ci „ n 4 2 Copyright (c) 1981" : PR 

1970 PRINT '•*** Adventure version 4.2 ^oyy 

1980 T pRINT fl "By Don * Freda Boner" ^ ^ ^ in ...... 

X if* inkers = » ™ j-K- h E = c 4l ; SPSS : - «o P m 

2010 O C B P 5 ( = LO;, : OB(LO, 5 0): P*(P>. 'hheVnneHr Time." : FOR I = 
2020 PRINTS 640,; : A$ = " 1) • X = SQR(9999) : NEXT I 

1 TO LEN (A$ ) : PRINT MID$ A$ , I, 1). • X 

. AB = 1 : FT = 12 : R = 10 • " " 2 at Time . S En 

™™ PS(1) = "outside a ruined castle, me 

''a" : PS 2) = "just -side the =a sUe = , DATA 

2a r s $( ?.;;s? a .. w "^ "Ti ^ ^ a ' *• 

ormous « V ? . . = p 

2060 P$(9) = PS(8) • PS(10) - P|(8 • 8, 0, 0, 0, 9, 12, 1 

P$(8) : DATA 10, 8, 0, 0. 0' B ' 1X ' ' 

0, 0, 0, 0» 0' 0' * „ f t „ rtU re chambers" : P$(14) = 

"lihp; «"<s> vans? raftwsw • *«»> -' si13 ' 

• P$(18) - P$(13) .._ 17 it, 18, 15, 14, 0, 13, 

^Jk V^, V%%3^ VVV l6 ' 15 ' 18 ' 

2.'». Ijult'-^ciS) : «» r °° m bey ° nd ^ maZe 

» : P$(2i) = "in the alcove" fl> 18 , l6 0, 

2100 P$(22) = "in the center hall . ft 24, 0, 

, 0, 0, 0, 0, 0- 22' 0, 9, , B. B. ■ "in the chamber room" 

= E the bottom of t fgreat staircase" : DATA 0, 

21 '.^"V J- ''"'oS'tS; ta?^ 2 | PSU7) ='"in the seco 
2130 P$(26) = "at the top ot tn kitc hen" 

nd floor hallway" : PSf 2 *) in 0> 0f , 25, 

2140 P$(29) = "in the breakfast room ^ 28( 0, 28, 0, 9 

28, 30, 31, 32, 0, 0, 30, 27, a. . 

,«„ m « • PS(31) = "in the library 
2150 P$(30) = "in the dinning room . P9UU 

• PS (32) - "in the living room • 27 2 8, 0, 29, 

2160 1$ 33) = "on the winding staircase DATA 27 . 

' ' P$(35) i P$'(33) : PS(36) = "i» a tight pa 

2170 PS(34) = P$(33) : PS(Ji>) 

ssage" ,„ rr , nm » . DATA 0, 0, «. » 35 ' „' ' 

2180 P$(37) = "in the guest room . da . 3 3jJf 0f 

0, 0, 0, 0, 34, 37, 0, 0, f» ;S' t P $(39) = "inside the clos 
2190 P$(38) = "in the small bedroom 
et" : P$(40) = "op m the tower 



The Fortress at Times-End 



BASIC Adventures 131 



2200 P$(41) = "at the Evil Tower of Death" : DATA 0, r 0, f 0, 

0, 0, 0, r 0, 0, 0, 0, 0, 0, 0, 0/ 0/ 0/ 0' ' ' ' 
2210 DATA a closed drawbridge, a painting, a marble statue, a ha 

t rack, a war hat, an old chest, lots of gold, a closed door 
2220 DATA some broken bottles 

2230 DATA cobwebs and broken bottles, a large wine rack, a small 

door, a human skeleton, a rawhide whip 
2240 DATA some wooden stocks, the ancient death mask, a body rac 
k 

2250 DATA some iron rings, a guillotine, a table, the hall going 

up, a clay plant pot, just some dirt, a key 
2260 DATA a chandelier, a hat, a war knife, the sword of Vistori 

, a bottle of wine, an old couch 
2270 DATA a note, a hall, a large dinning room table, a book cas 

e 

2280 DATA a sword, a sign, a locked gate, a passage, a closet, a 

sign, the evil Balrog ready for battle 
2290 DATA the ruby necklace, a sign, a long pipe 

2300 DATA 1, 3, 4, 5, 0, 6, 0, 7, 8, 10, 11, 0, 13, 14, 15, 16, 

17, 18, 19, 20, 0, 21, 0, 0, 22, 0, 0, 0, 0, 23, 0, 26, 30, 31 

, 0, 0, 35, 0, 38, 39, 41, 0, 0, 
2310 D$(0) = "North" : D$(l) = "South" : D$(2) = "East" : D$(3) 

= "West" : D$(4) = "Up" : D$(5) = "Down" 
2320 FOR I = 1 TO P : FOR J = TO 5 : READ P(I, J) : NEXT J, I 
2330 FOR I = 13 TO LO : READ OB$(I) : NEXT I : FOR I = 13 TO LO 

: READ OB (I, 0) : NEXT 
2340 DATA NOR, SOU, EAS , WES, UP, DOW, N, S, E, W, U, D, CAS, PA 

I, STA, RAC, HAT, CHE, GOL, D00, BRI, BOT, COB, WRI, SKE, WHI, 
STO, MAS, BOD, RIN, GUI, TAB, HAL, POT 
2350 DATA DIR, KEY, CHA, EVI, KNI, SAL, WIN, COU, NOT, FEA, F00, 

PEA, SWO, SIG, GAT, PAS, CLO, FOL, BAL, NEC, STO, PIP 
2360 FOR I = 1 TO NN : READ NO$(I) : NEXT I 

2370 DATA GO, WAL, GET, TAK, LEA, DRO, LOO, EXA, ENT, EXI , OPE, 
UNL, HIT, FIG, THR, REA, SAY, YEL, QUI, HEL, SAV, LOA, INV, SC 
0, FIN, REM, FOL, MOV, EAT 

2380 FOR I = 1 TO NV : READ VB$ (I) : NEXT I 

2390 GOSUB 1960 : GOTO 80 

2400 AB = : ZZ = 3 : OB(38, 0) = - 1 : OB(39, 0) = - 1 : OB(40 

, 0) = - 1 : RETURN 
2410 PRINT@ 960, " "; : RETURN 

2420 GOSUB 2410 : PRINT "There is very little air in the chamber 

and you are breathing it up!" : GOSUB 2650 

2430 R = R - 1 : PRINT "You have only"R" minutes of air left" : 

IF R =< THEN 2670 : ELSE RETURN 
2440 GOSUB 2410 : FT = FT - 2 : IF FT = 2 PRINT "Tell me what to 

" CHR$ (34) "LEAVE" CHR$(34)" that will stop the walls from " 
2450 PRINT "crushing me!" : BB = : RETURN 

2460 PRINT "The walls are closing in." : GOSUB 2650 : PRINT " No 

w they are only"FT" feet apart. " 
2470 FT = FT - 2 : PRINT "What can I do?" : GOSUB 2650 : PRINT " 

They are only"FT" feet away. " : GOSUB 2650 : PRINT "Help!!" : 
IF FT =< 4 THEN FT = 4 
2480 GOTO 2440 
2490 GOSUB 2410 



132 BASIC Adventures 



The Fortress at Times-End 



GOSUB 2510 : GOTO 2570 
2510 FOR I = 1 TO 15 R . . G0S UB 2560 

2520 PRINT CHR$ 27) D . G0SU B 2560 

2530 PRINT CHR$(27) 
2540 NEXT I 

2550 RETURN - fl , NEX T II < RETURN „ G0SUB 

PRINT " p"^: GOSUB 2640 « CLS 

• «»! p N U f (X.-EKTU pRiNT cHR$(n); s NEXT II 
PRINT ^ 9 PRINT : PRINT 
WW SPRINT : EOR II = 1 TO « : PRINT » you we, 
262 GOSUB 2650 : NEXT II 

2630 CL f I TO 500 : NEXT : RETURN 

2640 FOR AA - 1 TO 150 . RETUR(J 

2650 FOR AA , ~o 3 • NEXT : RETURN = 30 R CP = 

2660 FOR AA = 1 TO ^ • "^i.,, 140 \ : PRINT : IF CP 

2700 PRINT : PRINT iou 




The Fortress at Times-End 



BASIC Adventures 133 



Chapter Seven 

Temple of the Sun 
by Jack Powers 



About the author 



Jack Powers is a resident of southern 
California and a graduate mainframe 
programmer turned micro-programmer. His 
keen interest in South American Indian 
culture has made Temple of the Sun a highly 
authentic adventure. 

Temple is Jack's first commercial release. 
Currently under magnetic contract to The 
Programmer's Guild, Temple represents many 
grueling hours of debugging and fine-tuning to 
get it as close to perfection as possible. 

Jack's imagination, which is spotlighted in 
Temple, got its roots deep in the fantasy role- 
playing game field. As an avid fan of Gary 
Gygax's Dungeons and Dragons and Ken St. 
Andre's FRP variant, Tunnels and Trolls, 
Powers was weaned on the edges of 
participatory adventure. As a Diplomacy fan, 
Jack's sense of politics and history are 
sharpened. 

Jack is currently employed by the juvenile 
probation department of Orange County, 
California as a Boy's Ranch counselor. 




Note: Temple of the Sun has no save game routine. 

Spacing should not be changed in the DATA 
statements and is extremely important to proper 
screen presentation of items carried. 

Compression of this program for a 16K RAM 
machine will require the removal of remark 
statements in addition to normal removal of 
extraneous spaces. 



134 BASIC Adventures 



10 REM 

20 REM ** START UP AND HEADING ROUTINE ** 
30 REM 

40 CLS : GOSUB 3610 
50 REM 

60 REM ** INITIALIZE ROUTINE ** 
70 REM 

80 REM ** ALLOCATION DATA ** 

90 REM ** A0 = LOCATION SCENARIO / Al = PERMANENT VISUAL INF 

100 R REM 10 ** *A2 = 4 MAJOR COMPASS EXITS / A3 = 4 SEMI-MAJOR COM 

PASS EXITS ** 

110 REM ** A4 = PRAY GO TO CODE ** 

120 REM ** I=ITEM DATA ** 

130 REM ** L = VARIABLE COUNTER IN COMPARISON ROUTINES ** 

140 REM ** I(L f 0) = ITEM DESCRIPTION ** 

150 REM ** KL,1) = ITEM USAGE CODE / 1 = CAN GET / 2 = CAN 
WEAR ** 

TEMPLE ** 

1«0 rpm ** 21 = ITEMS IN POSSESSION OF ** 

190 REM ** I(L,3) = ITEMS IN POSSESSION OF - LOCATION IN POSSE 

200 S REM ** 1 = IN HAND / -1 = IN KNAPSACK / 2 = WEARING / -3 = 

IN POUCH ** „„„„ . . 

2 10 REM ** IU.4) = ITEM SPECIAL CIRCUMSTANCE CODE ** 
220 REM ** 1= CURED OF SNAKE BITE / -9 = ALREADY DRANK ** 
230 REM **C = COMMAND DATA** . 
240 REM ** G = VARIABLE COUNTER IN COMPARISON ROUTINE ** 

260 RANDOM : CLEAR 400 : DEFSTR A - D, I, - R : D E " NT , E - H, 
J - N, S - Z : DIM A(4), 1(19, 4), C(22) : FOR J - TO 20 : F 
OR G = TO 4 : READ A (G) : NEXT G, J : FOR G = TO 19 

270 READ I(G f 0), KG, 1), KG, 2) : NEXT G : FOR G = TO 22 : 
READ C(G) : NEXT G 

290 III ** XW = PERFECT SCORE TRIGGERED FLAG THEN COUNTER TO P 

300 N REM Y *^ WK = WEARING WRONG ITEM FLAG THEN COUNTER TO PENALT 
Y ** 

310 REM ** J = CURRENT SCENARIO NUMBER ** ._ TVp rQ 

320 REM ** JG = JAGUARS ALIVE COUNTER / S3 = SNAKES ALIVE CO 

330 N REM ** SUBROUTINE AND RANDOM FOR SCENARIO - I(L,2) - INITI 

340 L XW E = 40*: WK - 22 : JG - 2 : S3 - 3 : J - 20 : GOSUB 3570 : 
1(11 2) = STR$(- G) : GOSUB 3570 : 1(0, 2) = STR$ (- G) : GOSU 

350 STR*(- C) : GOSUB 3570 : 1 (16 . 2) « 

STR$(- G) : G = RND(13) : 1(15, 2) - STR$ - G) : G ~ RND<6 
360 1 (13, 2) = STR$(- G) : G = RND(19) : I(H, 2) - STRS ( G) t 

q ='•-••: G = RN D ( 2 ) ( «o" . 1(5 2 

370 CLS : IF G = 2 THEN I(2 f 2) = --13? : 1(3, 2) - 2 . 1(5,^2 

) - »4* : 1(19, 2) = "9" ELSE I(2 f 2) = n -18 M : 1(3, 2) - 4 

: 1(5, 2) = M 2" : 1(19, 2) = "0" 



Temple of the Sun 



BASIC Adventures 135 



380 
390 
400 
410 
F 

420 



** 



TEST FLAGS ROUTINE ** 

Fl = 1 MEANS FLASHLIGHT TURNED 

J = 20 MEANS LOCATION 20 WHICH 



/ Fl = MEANS OF 
STARTING LOCATION 



REM 
REM 
REM 

REM ** Fl = 1 MEANS FLASHLIGHT TURNED ON 
** 

REM ** J = 20 MEANS LOCATION 20 WHICH IS 
** 

430 ON ERROR GOTO 4200 : E9 = RND(700) : IF E9 => 698 GOTO 3440 
440 IF J < 20 THEN IF Fl = OR (1(6, 3) <> "1" AND 1(6, 2) <> s 
TR$(J)) THEN PRINT @ 0, STRING$(64, 32) : FOR G = 1 TO 6 : PRI 
NT : NEXT G : PRINT "IT'S TOO DARK TO SEEI!" : IF F1=0 THEN PR 
INT "WHY DON'T YOU PRAY" : GOTO 670 ELSE 670 
450 IF XW < 32 THEN XW = XW - 1 : IF J = 20 AND XW > THEN GOTO 

3400 ELSE IF XW = GOSUB 3440 
460 IF WK < 20 THEN WK = WK - 1 : IF WK = THEN GOTO 3470 
470 IF J = 14 THEN X4 = X4 + 1 : IF X4 = 4 THEN CLS : PRINT@ 460 
, "YOU SEE YOU ARE SEALED BETWEEN 2 WALLS" : PRINT@ 525, "RELA 
X.., THEY'RE 3 CENTIMETERS APART." : GOSUB 3530 : GOTO 2990 
480 REM 

REM ** SITUATION ROUTINE ** 
REM 

/ YOU ARE ROUTINES ** 
TO J : FOR GT = TO 4 : 
CHR$(30) : FOR G = 1 TO 



490 
500 
510 
520 



YOU SEE 
FOR JT = 
PRINT@ 0, 



PRINT A(0) : PRINT© 
: FOR G = TO 19 
PRINT I(G f 0) ; : PRINT 



REM ** 
RESTORE 
EXT GT , JT 
T G 

530 PRINTS 64, "YOU ARE 

" : PRINT A(l) ; : PRINT Q; 
540 IF VAL(I(G, 2)) = J THEN 

ELSE NEXT G 
550 REM ** MAJOR 
560 PRINTS 384, "OBVIOUS 
570 IF SW < THEN PRINT 
D = MID$(A(2), G, 1) : 
* "S" THEN PRINT "S "; 
D = "W" THEN PRINT "W 

RE M ** SEMI-MAJOR COMPASS POINTS 



READ A (GT) 
5 : PRINT : 



: N 
NEX 



192, "YOU SEE - 
Q; : NEXT G 



F 

580 
590 
600 
W 



COMPASS POINTS ** 
EXITS ARE -"; 

"UP" : GOTO 670 ELSE : FOR G = 1 TO 4 : 

IF D = "N" THEN PRINT "N "; ELSE IF D 
ELSE IF D = "E" THEN PRINT "E "; ELSE I 



NEXT G 
IF D = 

"; ELSE 
PRINT "SW 
610 NEXT G 
620 REM 
630 REM ** 
640 REM 
650 REM ** 
660 REM ** 
670 PRINT : 



: FOR G = 
"NE" THEN 
IF 

H . 
I 



D = 



1 TO 13 STEP 2 : D = 
PRINT "NE "; ELSE IF 
"SE" THEN PRINT "SE "; 



** 

MID$(A(3), G, 2) 

D = "NW" THEN PRINT "N 

ELSE IF D « "SW" THEN 



PROCESS ANSWER ROUTINE ** 



LT = LENGTH OF INPUT / 
OB = ON LOOK FOR SPACE 
PRINTS 448, STRING$(63, 



WHAT DO YOU WISH TO DO NOW " ; : INPUT B 



VT = VERB TOTAL LENGTH 
IN INPUT ** 

158) : PRINT : PRINT© 968, 



680 LT ■ LEN(B) : 
R VT = 3 TO LT 
NEXT VT 

690 REM ** PB = 
** 

700 PB - LEFT$(B, 



Z L L - MTnJf N ^ RI ^ "WHAT" : GOTO 430 ELSE FO 
OB - MID$(B, VT, 1) : IF OB <> CHR$(32) THEN 

PROCESSED VERB / COMPARE TO COMMANDS ROUTINE 



3) 



FOR G = TO 22 



G : PRINT "SORRY BUT YOU CANNOT "• B 



IF PB 
GOTO 



<> C(G) 
430 



THEN NEXT 



136 BASIC Adventures 



Temple of the Sun 



710 REM ** VT = VERB TOTAL LENGTH / LL = ITEMS CURRENT LOCATIO 
720 REM**** IF ITEM IS NOT VISIBLE OR IN POSSESSION THEN BRANCH 

730 VT = VT + 1 : PO = MID$(B, VT, 3) : FOR L = TO 19 : IF PO 
<> LEFT$ (I (L, 0), 3) THEN NEXT L ELSE LL = VAL(I(L, 2)) : IF L 
i <-^> 1 AND I(L. 2) <> "21" THEN GOTO 3320 _ j. 

740 REM ** IF IN TEMPLE AND FLASHLIGHT IS OFF OR NOT AVAILABLE 

750 REM ** THEN RESULTS OF - CAN COMMAND BE PERFORMED ** 

760 IF G < 12 AND J < 20 THEN IF Fl = OR (1(6, 3) <> "1" AND I 

Id 2) <> STR$(J)) THEN GOTO 3320 _...„„ iA 

770 REM ** G = COMMAND BRANCH CODE / ON COMMAND BRANCH ** 
780 ON G + 1 GOSUB 870, 970, 1090, 870, 1660, I860, M*'™**' 

^860, 2180, 1660, 2260, 2340, 2410, 2610, 2690, 2730, 2810, 29 

90, 3060, 3110, 2340, 2690 
790 REM 

800 REM ** RECYCLE ROUTINE ** 

810 REM 

820 GOTO 430 

830 REM 

840 REM ** ATTACK AND KILL ROUTINE ** 
850 REM ^ 

111 3) = "1" THEN K GOSUB 3570 : IF PO = "SNA" THEN IF G 

< 9 THEN S3 = S3 - 1 : PRINT "OOOHH. YOU GOT ONE CHAMP." : GOS 
L 1530 • IF S3 =< PRINT -CONGRATULATIONS. YOU GOT THEM ALL. 
•Viae', 0) ""SNAKE PULP" : GOSUB 3530 : RETURN ELSE 870 ELS 

SIS IF M P0*= "JAG" IF J <>TtHEN 3320 ELSE^F G < 9 THEN PRINT « 

W." : GOSUB 3530 : RETURN ELSE 890 ELSE RETURN 

9 10'l E F M po**= "MYS" OR PO S = L »SEL" OR PO -""MB " THEN GOTO 2990 ELS 

E GOTO 3310 
920 REM 

III REM - °xr N = K R ME U ANS E pO*SONOUS POSSIBILITY NOT PREVIOUSLY C 
950 E REM D *" X4 = 1 MEANS LIQUID CHECKED AND POISONOUS / X2 = 5 

960*REM ** X4 = 5 OR X2 < 3 MEANS LIQUID CURES SNAKEBITES ** 
970 IF PO <> "LIQ" THEN GOTO 1020 

III 11 I ( (18 2 ; 5| <>""?" THEN G G 0°TO° ELSE IF X4 = THEN X2 = R 

10^ ( 1F l L 2 S t 2 F TH X EN%RINT E "IT 2 WAS 5 DEAD^Y X pOrSON, BYE." . GOTO 29 

mS IF X2 •< 3 THEN PRINT "YOU ARE CURED OF SNAKE BITES FOR AWHI 

LE.» : 1(16, 4) = "1" : 1(12, 4) = -9 : RET URN 
laoa tp da - "WAT" THEN IF J = 10 OR J = 13 OR J = 18 THEN FK1N1 
"YEChT?. IT'S BEEN SITTING HERE FOR CENTURIES AND YET.. YOU SOM 



Temple of the Sun 



BASIC Adventures 137 



EHOWSURVIVE. " : RETURN ELSE GOTO 3320 ELSE PRINT "EECH.I WOULD 
N'T THINK OF LETTING YOU DO THAT." : RETURN 
1030 REM 

1040 REM ** EXAMINE ROUTINE ** 
1050 REM 

1060 REM ** VG = VARIABLE FLAG FOR EXAMINING ROOM ** 
1070 REM ** 1 = FOUND ITEM / 2 = DID NOT FIND ITEM ** 
1080 REM ** POOL - WATERFALL - BATH - LARGE SACRED WELL RESUL 
TS ** 

1090 VG = : IF Fl = AND J < 20 THEN GOTO 430 

1100 IF PO = "POO" OR PO = "WEL" OR PO = "SAC" OR PO = "LAR" OR 
PO = "WAT" OR PO = "BAT" THEN IF J = 10 THEN PRINT "YOU SEE A 
GLIMMER OF SOMETHING VERY DEEP" : RETURN ELSE IF J = 13 OR J = 

18 THEN PRINT "YOU SEE A LOT OF FRESH CLEAR WATER." : RETURN 
ELSE 332 

1110 REM ** ENTIRE ROOM RESULTS / LS = LOCATION SNAKES AND HI 
DDEN CODE ** 

1120 REM ** LX = NON HIDDEN CODE OF SNAKES LOCATION ** 
1130 IF PO <> "ROO" THEN GOTO 1190 ELSE LS = VAL(I(16, 2)) : LX 
= ABS(LS) 

1140 REM ** X5 = 4 TO 1 ODDS OF GETTING SNAKE BIT (1-4) VS. (5 



) 



* * 



1150 REM ** WITHOUT HAVING DRANK LIQUID OR POSSESSING KNIFE * 
* 

1160 IF LX = J AND LX <> LS THEN X5 = RND (5) : IF 1(16, 4) <> "1 
" AND 1(11, 3) <> "1" AND X5 < 4 THEN PRINT "LOOK OUT FOR THE. 
....SNAKES. SORRY I TOLD YOU TO LATE." : 1(16, 4) = "2" : GOTO 
2990 

1170 FOR L = TO 19 : VG = 1 : GOSUB 1410 : IF LX = J THEN I(L, 
2) = STR$(J) : IF LX <> LL THEN VF = 1 : NEXT L ELSE NEXT L E 
LSE NEXT L 

1180 REM ** BRONZE BOX - STONE ALTARS RESULTS ** 
1190 IF J=7 AND PO="BRO" THEN IF 1(7, 2) ="-7" THEN 1(7, 2) ="7" : 
PRINT "OK" : RETURN ELSE 1340 ELSE IF J=0 OR J=9 THEN IF PO=" 
STO" OR PO="ALT" OR PO="12 " THEN PRINT "ALL 12 SEEM TO BE MAD 
E OF 12 INDIVIDUAL STONES FOR SOME UNKNOWN REASON." : RETURN 
1200 REM ** STATUE AND JAGUARS RESULTS ** 

1210 IF PO = "STA" AND J = 6 THEN PRINT "YOU SEE WHAT LOOKS LIKE 
HIEROGLYPHICS. MAYBE YOU CAN READ THEM." : RETURN 

1220 IF J = 8 THEN IF PO = "JAG" OR PO = "3 J" THEN IF 1(9, 2) = 
"-8" THEN 1(9, 2) = "8" : PRINT "OK" : RETURN ELSE GOTO 1290 
ELSE GOTO 1290 

1230 IF J <> 5 THEN GOTO 1290 

1240 IF JG = THEN PRINT "THEY ARE DEAD" : RETURN 

1250 PRINT "THE JAGUARS ARE RUNNING AT YOU VERY QUICKLY" : INPUT 

"WHAT DO YOU WANT TO DO"; B : PA = LEFT$(B, 3) 
1260 IF PA = "RUN" THEN J = RND (20) : RETURN ELSE IF PA = "ATT" 

OR PA = "KIL" THEN PO = "JAG" : GOSUB 870 : IF JG = THEN RET 

URN 

1270 PRINT "THE JAGUARS GRIN AS THEY POUNCE ON YOU. OHHHH. I CAN 

■T LOOK." : GOTO 2990 
1280 REM ** TREE - FOLIAGE - WALL - FLOOR RESULTS ** 
1290 IF J « 1 THEN IF PO = "TRE" OR PO = "FOL" THEN PRINT "JUST 

WORMS AND ANTS" : RETURN 



138 BASIC Adventures 



Temple of the Sun 



i300 IF PO = "WAL» OR PO = "FLO" THEN PRINT "IT'S MADE OF A VERY 
HARD CEMENT AND MORTAR." : RETURN 

£5 g ^V^I^^V^S^Bn RESULTS IF NO 

13 !fl REM ** EXAMINING HIEROGLYPHICS - CALENDAR - STATUE BRANCH 

ROUTINE ** 

1 \Aa IF L < 20 THEN GOTO 1360 ,„... ar PO = " 

i IsTA.^HEN^OTO^r SS SxS ^SEE^ING 



1380 REM ** LX = NON HIDDEN CODE LOCATION OF ITEMS ON LIST ** 

1390 REM ** OK°MS E "SS RETURN ROUTINE ** 

IF L r^THEN^VA^L, 2)) : LX = ABS (LL) IF VG = 

I420 H REM VG ** "LX ANdTdETERMINE IF POSSESSING ITEM OR ITEM AT L 
14??5? BRANCHES TO RESULT BY USING L TO DETERMINE WHICH I 

iJSYfVx'o 2*1* AND a <> LX THEN GOTO 3320 ^ „ 

145 °1S20; i 5 G O 0! UB l 6 3 4 0! 'lS 1 S 4 0: i5 1 7 0! i4 8 4 0! i470, 1530. 1590, 1600 
^^EM' it^lTEMrr ITEM TABLE RES ULTS « ^ 
i 4 4 7 8 PRIST "IT LOOKS^ AS I FITS USED FOR A SPECIAL CEREMONY" : R 
I4 E 9 T Tf Fl = 1 THEN PRINT "IT WORKS"- : RETURN ELSE PRINT "IT'S N 

OT TURNED ON" : RETURN 
1500 PRINT "IT'S A HIGH QUALITY , I ^ M pRINT - IT CONTAINS SOME 
1510 IF L = 18 AND 1(12, 4) <> -| THEN PKl 1 return ^ 

E^IF^ I (18^3^=^ » 1" THEN _ PRINT IT S IN YOUR INVENTORY." : RET 

URN ELSE RETURN ELSE RETURN SOME OF HIS CEREMONIAL 

1520 PRINT "IT'S A STATUE OF A SHAMAN IN b n 

DRESS.", "HE'S "EARING A SKIN POUCH AND AP " ; : FOR 

^f-T™ ."iF^G, 1 ") 00 °»-i° N ?HEN°PRINT I (G, 0) , . .7 = 1 = 
154 N E IF Z7 E = SE SS PRI«T "NOTHING" : RETURN ELSE 27 = : RETUR 

N ap qtppl AND IS VERY VERY SHARP" i RETURN 

U60 REM NT - IT X4 M =°0 MEANrpOISONOuI CODE NOT SET FOR LIQUID / S 

ET X4 ** 

159 ! . ftPPEAB TO BE DEADLY^ l «£. , 

1600 PRINT "THEY REPLACE THE SHAMAN S 2 FRONT Tbhlti 



Temple of the Sun 



BASIC Adventures 139 



1610 REM 

1620 REM ** GET AND USE ROUTINE ** 
1630 REM 

1640 REM ** CAN YOU GET IT / H = HAND COUNT / Kl = KNAPSACK CO 
UNT ** 

1650 REM ** (-1) = IN KNAPSACK ** 
1660 IF J <> LL AND LL <> 21 GOTO 3320 

1670 IF I(L, 1) = "2" THEN PRINT "YOU CAN ONLY WEAR IT." : RETUR 
N 

1680 IF L = 12 GOTO 3310 : IF H => 4 THEN PRINT "SORRY. YOU CAN ' 

T. YOUR HANDS ARE FULL." : RETURN 
1690 IF I(L, 1) = "4" THEN PRINT "SORRY ALL YOU CAN DO IS DRINK 

IT." : RETURN 

1700 IF I(L f 3) = "1" THEN PRINT "YOU ALREADY HAVE IT." : RETURN 

1710 IF I(L, 3) = "-1" AND 1(10, 3) = "2" THEN PRINT "OK" : H = 
H + 1 : Kl = Kl - 1 : I(L, 3) = "1" : I(L, 2) = "21" : RETURN 

1720 REM ** ZC = POUCH COUNT / I(L,1) = 4 MEANS LIQUID AND RES 
ULTS ** 

1730 REM ** (-3) = IN POUCH ** 

1740 IF I(L, 3) = "-3" AND 1(15, 3) = "2" THEN ZC = ZC - 1 : PRI 

NT "OK" : I(L, 2) = "21" : I(L, 3) = "1" : RETURN 
1750 REM ** I(L,1) = 5 MEANS SNAKE RESULTS ** 

1760 IF I(L, 1) <> "5" OR S3 <= THEN GOTO 1790 ELSE IF 1(12, 4 
) = «_9" T HEN PRINT "YOU CAN'T. THERE'S TO MANY OF THEM." : RE 
TURN 

1770 IF I(L, 1) = "5" THEN PRINT "YOU MADE A VALIANT EFFORT. BUT 
ALASS THEY WERE TOO MUCH FOR YOU." : PRINT "BUT LOOK ON THE BR 
IGHT SIDE." : PRINT "THE SNAKES WON'T BE HUNGRY FOR AWHILE." : 
GOTO 2990 

1780 REM ** SET LIQUID FLAGS IF NOT DRANK FOR GETTING URN ** 

1790 IF J = VAL(I(L, 2)) THEN H = H + 1 : I (L, 3) = "1" : I (L, 2 
) = "21" : PRINT "OK" : IF L - 18 AND 1(12, 4) <> "-9" THEN I( 
12, 2) = "21" : 1(12, 3) = "1" : RETURN ELSE RETURN 

1800 PRINT "ITS NOT HERE." : RETURN 

1810 REM 

1820 REM ** GO AND RUN ROUTINE ** 
1830 REM 

1840 REM ** SW = SWIMMING CHECK / X7 = LENGTH OF NOUN ** 

1850 REM ** 00 COMPARES YOUR NOUN TO LOCATIONS LISTED EXITS * 
* 

1860 IF SW < GOTO 3320 

1870 X7 = LEN(PO) : IF X7 <> 2 GOTO 1910 

1880 FOR G = 1 TO 13 STEP 2 : 00 - LEFT$(PO, 2) : IF 00 <> MID$ ( 

A(3), G, 2) THEN NEXT G : GOTO 3310 
1890 IF 00 = "NE" THEN J = J + 5 ELSE IF 00 * "NW" THEN J = J - 

3 ELSE IF 00 = "SE" THEN J = J + 3 ELSE IF 00 = "SW" THEN J = 
J - 5 ELSE GOTO 3310 

1900 RETURN 

1910 FOR G = 1 TO 4 : 00 = LEFT$(PO, 1) : IF 00 <> MID$(A(2), G, 
1) THEN NEXT G : GOTO 3310 

1920 IF 00 = "N" THEN J = J + 1 ELSE IF 00 = "S" THEN J = J - 1 
ELSE IF 00 = "E" THEN J = J + 4 ELSE IF 00 = "W" THEN J = J - 

4 ELSE GOTO 3310 



140 BASIC Adventures 



Temple of the Sun 



1930 RETURN 
1940 REM 

1950 REM ** PUT ROUTINE ** 

i 9 9 6 7 rIm ** TEST TO SEE IF YOU HAVE IT / 00 - YOUR VERB / PP = 
YOUR NOUN ** 

1980 \l T.L X n T - E «l»°lND 3 l!L 3) = "1" THEN INPUT "IN OR ON WHA 
'Till KNAPSACK) " ; B : 00 ' LEFT$ (B , 2) : IF 00 <> "ON" AND 00 
<>" IN THEN PRINT "HUH" : GOTO 3310 ELSE PP = MID$(B, 4, 3) 

20 E L S REr°** 33 pP = GROUND - FLOOR - KNAPSACK - POUCH - IVORY STA 

^irifpP-GRO^OR PP="FLO» THEN I(L, »^Cgi%«^ 

SE PRINT "OK" : Kl = Kl + 1 : H = H - 1 : KL, 3) - 1 • 

URN , -rr, t/ic o\ /\ «o" THEN GOTO 3320 ELSE I 

LSE PRINT "OK" : I(L, 3) = "-3" : ZC - ZC + 1 . 

TURN o ™ 11 m t n " or PO = "TIN" OR PO = "SMA" THEN IF PP = "IVO 
20 ^THEN P PRINT M "IT F^BUT IT WILL NOT STAY ON." : RETURN ELSE 

GOTO 3310 ELSE GOTO 3310 
2040 REM 

2050 REM ** READ ROUTINE ** 

OF A SHAMAN PUTTING A SMALL PIECE O* bUbU 

RETURN _ PRINT "YOU SEE A SHAMAN GETTIN 

^^G^A^SMALL = FRAGMENT OF GEMSTONE OR HIGH QUALITY GLASS INTO A 
POUCH." : RETURN MISSING SOME P 

HOWS A SHAMAN SKINNING A DEER TO MAKE A t-uu^n 

2130 R PRINT "YOU SEE NOTHING SPECIAL" : RETURN 

2140 REM „ . . 

2150 REM ** SWIM ROUTINE ** 

2i7 R E EM ** RESULTS BY LOCATION AND COMMANDS UP - TUNNEL ** 

218 IF J = 10 GOTO 2610 . . UP » THE N SW = SW + 1 t PR 

2190 IF J = 13 OR J =18 THEN IF fo ELS£ pRINT 

OU NEEDED MORE SALT, BUT YUMMY. : GOTO 2990 



Temple of the Sun 



BASIC Adventures 141 



2210 REM 

2220 REM ** WEAR ROUTINE ** 
2230 REM 

2240 REM ** CAN YOU WEAR IT / WW = NUMBER OF ITEMS WEARING ** 

2250 REM ** IF NOUN = CEREMONIAL MASK OR COTTON ROBE - SET COU 

NTERS - FLAGS ** 
2260 IF L > 19 THEN GOTO 3310 
2270 IF I(L, 1) <> "2" THEN GOTO 3310 

2280 IF WW => 5 THEN PRINT "YOU CAN'T WEAR ANY MORE." : RETURN 
2290 I(L, 3) = "2" : I(L, 2) = "21" : PRINT "OK" : WW • WW + 1 : 
IF PO = "CER" OR PO = "COT" THEN IF WK < 20 THEN RETURN ELSE 
GOSUB 3570 : WK = G : RETURN ELSE RETURN 
2300 REM 

2310 REM ** DROP AND THROW ROUTINE ** 
2320 REM 

2330 REM ** DO YOU HAVE IT / RESULTS ** 
2340 IF L > 19 THEN GOTO 3310 

2350 IF I(L, 3) = "1" THEN PRINT "OK" : H = H - 1 : I(L, 2) = ST 
R$(J) : I(L, 3) = "" : RETURN ELSE PRINT "YOU ARE CURRENTLY NO 
T HOLDING IT" : RETURN 

2360 REM 

2370 REM ** INVENTORY ROUTINE ** 
2380 REM 

2390 REM ** WEARING ** 

2400 REM ** IF WEARING ANYTHING SET EU TO 1 ** 

2410 PRINT "YOU ARE WEARING - "; : FOR G = TO 19 : IF I(G, 3) 

= "2" THEN PRINT I (G , 0); Q; : EU = 1 : NEXT G ELSE NEXT G 
2420 REM ** IF EU = RESULTS / RESET EU ** 
2430 IF EU = THEN PRINT "NOTHING" ELSE EU = 

2440 REM ** IF KNAPSACK / LIST CONTENTS / SET EU TO 1 IF ANYTH 
ING FOUND ** 

2450 IF 1(10, 3) - "2" THEN PRINT : PRINT "THE KNAPSACK CONTAINS 
"; Q; : FOR G = TO 19 : IF I(G, 3) = "-i" THEN PRINT I(G, 0) 
; Q; : EU = 1 : NEXT G ELSE NEXT G ELSE GOTO 2490 

2460 REM ** RETEST EU / RESET EU ** 

2470 IF EU - THEN PRINT "NOTHING" ELSE EU = 

2480 REM ** IF POUCH / LIST CONTENTS / SET EU TO 1 IF ANYTHING 
FOUND ** 

2490 IF 1(15, 3) = "2" THEN PRINT : PRINT "THE POUCH CONTAINS"; 
Q; : FOR G = TO 19 : IF I(G, 3) = "-3" THEN PRINT I(G, 0); Q 
; : EU = 1 : NEXT G ELSE NEXT G ELSE GOTO 2530 

2500 IF EU = THEN PRINT "NOTHING" ELSE EU = 

2510 REM ** HOLDING ANYTHING / HOLDING URN - LIQUID TEST ** 
2520 REM ** SET EU IF ANYTHING FOUND ** 

2530 PRINT : PRINT@ 960, "YOU ARE HOLDING"; Q; : FOR G = TO 19 

2540 IF I(G, 3) = "1" THEN IF G = 18 AND 1(12, 4) <> "-9" THEN P 
RINT "LIQUID IN URN"; Q; : EU = 1 : NEXT G ELSE IF G = 12 THEN 
NEXT G ELSE PRINT I (G , 0); Q; : EU = 1 : NEXT G ELSE NEXT G 
2550 REM ** RETEST EU / RESET EU ** 

2560 IF EU = THEN PRINT "NOTHING" : PRINT : RETURN ELSE El) = 

: PRINT : RETURN 
2570 REM 



142 BASIC Adventures Terr^le of the Sun 

{ 



2580 REM ** JUMP ROUTINE ** 

2600 REM ** IF NEAR WATER RESULTS BY LOCATION / ELSE RESULT * 
26 *1 IF J = 13 OR J = 18 THEN PRINT "YOU ARE IN THE WATER" i SW 

263 rS5!S ^r^RE^R 2 ^ A MOMENT" : RETURN 
2650 REM ** LIGHT AND TURN ROUTINE ** 

2660 REM aoarr^uT TPCT / ELSE RESULT ** 

2670 REM ** IF YOUR ^UN IS FLASHLIGHT TEST / |LSE ^ ^ 

2680 REM ** 00 = ON OR OFF /TEST 00 / bb i „ 0N » THE 

26 2Vl'- P ? : PRINT "OK" : RET URN ELSE IF 00° ^OFF" THEN PRINT « 

OK" Wl '= - RETURN ELSE GOTO 3310 ELSE GOTO 3310 
2700 REM 

2710 REM ** LIST ROUTINE ** 

2730 CLS : PRINTS 192, "** ATTACK DRINK DROP EXAMINE JUMP KILL G 
27f0 PRINT^ " **^LIST^ PRAY* PU^ QUI THREAD RUN SAY SCORE SWIM (UP DO 
27^KF"«« (ON - OFF) USE WEAR (ONCE IT'S ON IT ST 

2760 S PR**NT* @ **831 "" . INPUT "HIT ENTER TO RETURN TO GAME "; B : 

CLS : RETURN 
2770 REM . ' . 

2780 REM ** PRAY ROUTINE ** 

2800 REM ** ON STEPS THEN CHECK FOR PERFECT SCORE THEN HOLDING 

FLASHLIGHT ** ' , EN IF XW > AND XW < 32 

28 T SEN F GOTO ll^VA&i "'WHAT ARE YOU HERE FOR ? GO SOUTH." : 
2820 E ReT ^ SE H0 L T D?NG 9 FLASHLIGHT OR OUT IN ROOM THEN IS FLASHLIG 

HT ON Fl = l ** _ , c T R$m THEN IF Fl = THEN P 

2830 IF 1(6, 3) = "1" OR 1(6, 2) "..^^URN : ELSE : ELSE 2850 
RINT "TRY... TURN FLASHLIGHT ... ON : RETURN . 

2840 GOTO 2870 ottht THE SPIRITS DAMAGED THE FL 

£ g iiii : 3S S25 :s r .K » , 

2890 IF A (4) = "3" THEN GOTO 2950 THINGS" : RETURN 

2 9 9 1 IF A F [ 4 L = 1 THEN^IF A^4) = "5 THEN PRINT "IF I WERE YOU.... I 
29^0 ^^I^r^-e-THE^'pRINf-TRY NOT TO GET DIZZY AND LOSE YOU 
R DIRECTIONS" : RETURN 



Temple of the Sun 



BASIC Adventures 143 



29 ll n7!I, " S ° RRY THE LINE IS BUSY RIGHT NOW, ... LOOKS LIKE YQ„ , 
RE ON YOUR OWN THIS TIME" : RETURN Y ° U A 

L E n *! HAVE EVE R^THING ? ROUTINE ** 
DESTRFn IF ^ 0U HAVE A ^L YOU WANT AND CAN GET OR DO THEN GO f 
DESIRED DIRECTION)" : RETURN ° ( 

2960 REM 

2970 REM ** QUIT ROUTINE ** 
2980 REM 

2 "iVlEF?Lb 65 ,V' D0 ..^ U WANT T ° PLAY AN0THER GAME "' « ^PU T B • 
3000 GOTO 260' ' = * G0T0 ™ ELSE END 

3010 REM 

3020 REM ** SAY ROUTINE ** 
3030 REM 

3040 REM ** NOUN = VOHOO RESULTS / ELSE LOAD AND PRINT NOUN * 

30 OR SPACE***/ 1 = T ° TAL ENTRY LENGTH MINUS VERB LENGTH PLUS 1 p 

38 R 6 N EL F S E P0 V r=7T 0H : ^ 1 IF . V b T B = ^J"**™" " WHAT " « ™™ 
ETURN VT + 1 : BB = MID$ (B, VT, VI) : PRINT BB : R 

3080 REM 

3090 REM ** SCORE ROUTINE ** 
3100 REM 

311 I 33 L f ixT? 6 T 8 @ ?V-°. U HAVE " • 105, -VOU NEED" : XV = 

3120^REM ** IF HAVE IT WHERE IT BELONGS RESULTS / ELSE RESULTS 
3130^REM ** W9 = COUNTER FOR NUMBER OF ITEMS IN CORRECT PLACES 

Ss5e"s " " D0 ""' " A,E ™ «>UCH 0» THEM SET TO 1 STOP 

3270 : Wl = 1 AW1|S YX ' POUCH AND APRON" : GOSUB 

3190 IF Wl = AND (1(9, 3> = »-v no rno ^ 

T@ XY, "PRECIOUS GEM" : W9 = W 9 + ? ^n^." 3 "> THEN PRIN 

3220 IF Wl = AND TM7 -j\ _ ii ~ 

: W9 = W9 + 1 GOSUB 327^ ™ EN PRINT@ XY ' "SACRED ITEM" 

UCH" : GOSUB 3270 ^ PRINTt| YX ' "SACRED ITEM-IN PO 

3230 IF Wl = AND TMQ i\ _ ii -»•• ~ 

" : W9 = W9 + 1 , goIub 32?B E«p T So? u !? INTe XY ' "CHARRED WOOD 
POUCH" : GOSUB 3270 SE PRINT@ YX ' "CHARRED WOOD-IN 



144 BASIC Adventures 



Temple of the Sun 



3240 REM ** RESET Wl / PERFECT SCORE BRANCH ELSE RETURN ** 
3250 Wl = : IF W9 = 8 GOTO 3370 ELSE INPUT "HIT ENTER TO RETUR 
N" ; B : RETURN 

3260 REM ** ADD LINE TO PRINT LOCATION VARIABLES ROUTINE ** 
3270 XY = XY + 64 : YX = YX + 64 : RETURN 
3280 REM 

3290 REM ** CAN'T DO THAT ROUTINE ** 
3300 REM 

3310 PRINT "SORRY BUT YOU CAN'T DO THAT." : GOTO 430 

3320 PRINT "SORRY BUT YOU CAN'T DO THAT .... YET" : GOTO 430 

3330 REM 

3340 REM ** CONDITION SETS AND EXPLANATIONS ROUTINE ** 
3350 REM 

3360 REM ** PERFECT SCORE WARNING AND INITIALIZING COUNTERS AN 
D FLAGS ** 

3370 GOSUB 3530 : CLS : PRINT "OH GREAT PRIEST RETURN QUICKLY TO 
THE STEPS BEFORE THE SPIRITS OF THE TEMPLE SEAL YOUR FATE!!" 
: GOSUB 3530 

3380 IF XW < 32 THEN GOTO 430 ELSE XW = 30 : GOTO 430 
3390 REM ** WIN ROUTINE ** 

3400 CLS : GOSUB 3530 : PRINT© 448, "OH GREAT SHAMAN..." : GOSUB 
3530 

3410 PRINT "BECAUSE OF YOUR GREATNESS AND WISDOM..." : GOSUB 353 
: PRINT "THE WORLD AND IT'S ELEMENTS..." : GOSUB 3530 

3420 PRINT "ARE AT YOUR COMMAND." : PRINT : PRINT : PRINT "CONGR 
ATULATIONS" : GOSUB 3530 : GOTO 2990 

3430 REM ** EARTHQUAKE ROUTINE AND INITIALIZING COUNTERS AND F 
LAGS ** 

3440 CLS : FOR X = 1 TO 300 : G = RND(1023) : PRINT@ G, "EARTHQU 
AKE" : NEXT X 

3450 CLS : PRINT@ 460, "YOU HAVE ANGERED THE SPIRITS OF THE TOMB 
." : PRINT© 523, "AND THEY HAVE SEALED YOUR FATE WITH THEIR' S" 
: J = 14 : GOTO 460 
3460 REM ** WEARING WRONG APPAREL RESULTS / COUNTERS AND FLAGS 
SET ** 

3470 CLS : PRINT@ 328, "A STRANGE BLUE MIST HAS SUDDENLY SURROUN 

DED YOU" : GOSUB 3530 
3480 PRINT© 404, "YOU HAVE FALLEN ASLEEP!" : GOSUB 3530 : CLS : 

PRINT© 276, "ARISE AND BE JUDGED" : GOSUB 3530 
3490 PRINT© 463, "THOU ART A FAKER AND ANGERS US" : GOSUB 3530 : 

J = 14 : Fl = 1 : 1.(6, 2) = "14" : GOTO 430 
3500 REM 

3510 REM ** TIMER SUBROUTINE ** 
3520 REM 

3530 FOR GG = TO 1000 : NEXT GG : RETURN 
3540 REM 

3550 REM ** RANDOM NUMBER SUBROUTINE ** 
3560 REM 

3570 G = RND(19) : IF G = 14 GOTO 3570 ELSE RETURN 
3580 REM 

3590 REM ** HEADING AND INSTRUCTIONS ROUTINE ** 
3600 REM 

3610 PRINT@ 135, "*** WELCOME TO THE EXCITING WORLD OF * 

**" : PRINT© 465, "J P LABORATORIES ADVENTURES" 

3620 PRINT© 844, "BROUGHT TO YOU BY THE PROGRAMMER'S GUILD" : GO 
SUB 3530 : CLS 



Temple of the Sun 



BASIC Adventures 145 



3630 PRINT : PRINT : PRINT " YOU ARE ABOUT TO BE TRANSPORTED T 

THE JUNGLES OF PERU, ABOUT"; 
3640 PRINT "100 MILES SOUTHWEST OF LAKE TITICACA, THE HIGHEST NA 

VIGABLE FRESH WATER LAKE IN THE WORLD." 

3650 PRINT " YOU HAVE HEARD OF A PRE-INCA TEMPLE RECENTLY UNCO 

VERED THERE."; 

3660 PRINT "INDIAN FOLKLORE HAS IT THAT THE TEMPLE CONTAINS THE 
SECRETS OF" 

3670 PRINT "THE SHAMAN AND WARNS OF DEATH TO ALL WHO ENTER AND A 
NGER THE SPIRITS AND BODIES OF THE ANCIENT SHAMANS ENBALMED 
AND ENTOMBED THERE." 
3680 PRINT " DESPITE ALL THIS YOU DESIRE TO SEARCH "; 
3690 PRINT "OUT THESE SECRETS AND PIT YOUR INTELLIGENCE AGAINST 
THAT OF THE SHAMANS OF OLD." : PRINTS 965, "HIT ENTER TO CONT 
INUE"; 

3700 J$ = INKEY$ : IF J$ = "" THEN GOTO 3700 ELSE CLS 

3710 PRINT© 195, "TEMPLE OF THE SUN IS UNIQUE IN ITS FORMAT. IT 

USES A SPECIAL MATH CODING SYSTEM TO CREATE AN OCTAL-DIRECTION 

ED ADVENTURE" 

3720 PRINT "MAZE. YOU CAN GO ANY OF THE 8 MAJOR AND SEMI-MAJOR 
COMPASS POINTS — N, S, E, W, NE, NW, SE, SW — LISTED AS 

EXITS BY TYPING " CHR$(34) "GO S" CHR$(34) " FOR GO SOUTH 

OR " CHR$(34) "GO NE" CHR$(34) " FOR GO NORTHEAST."" 
3730 PRINT : PRINT " SO BE ESPECIALLY CAREFUL TO MAP YOUR WAY 
THROUGH TO PREVENT GETTING LOST." : PRINT© 965, "HIT ENTER TO 
CONTINUE"; 

3740 L$ = INKEY $ : IF L$ = "" THEN GOTO 3740 ELSE CLS 
\3750 PRINT© 195, "COMMUNICATING WITH THE COMPUTER IS DONE ON A V 
-} ERB-NOUN" 

"3760 PRINT "FORMAT. ONCE IN THE TEMPLE YOU SHOULD TYPE " CHR$(3 
4) "LIST" CHR$(34) " TO" : PRINT "FAMILIARIZE YOURSELF WITH AC 
CEPTABLE COMMANDS. THEN YOU WILL WANT TO DO SUCH THINGS AS: 

3770 # PRINT CHR$(34) "GET FLASHLIGHT" CHR$(34) ", " CHR$(34) "TUR 
N FLASHLIGHT. . .ON" CHR$(34) ", " CHR$(34) "EXAMINE ROOM" CHR$ ( 

34) ; 

3780 PRINT " TO DISCOVER HIDDEN ITEMS (BE CAREFUL OF THE SNAKES 
UNLESS YOU HAVE A WEAPON OR ARE IMMUNE), " CHR$(34) "READ" : P 
RINT" HIEROGLYPH ICS" CHR$(34) " FOR CLUES, " CHR$(34) "WEAR CRO 
WN" CHR$(34) " (ONCE AN ITEM IS WORN IT CANNOT " ; 

3790 PRINT "BE TAKEN OFF), " CHR$(34) "INVENTORY" CHR$(34) ", AN 
D " CHR$(34) "SCORE" CHR$(34) " . FOR HINTS, TRY " CHR$(34) "P 

RAY" CHR$(34) "." 
3800 PRINT© 965, "HIT ENTER TO CONTINUE"; 
3810 G$ = INKEY$ : IF G$ = "" THEN 3810 ELSE CLS 

3820 PRINT© 195, "IF YOU'RE READY, HOLD ON TO YOUR SEATS. THROUG 
H THE MAGIC OFTHE TRS-80, YOU ARE ABOUT TO BE TRANSPORTED THOU 
SANDS OF MILES 

3830 PRINT "IN A MATTER OF SECONDS." 

3840 PRINT " GOOD LUCK ON YOUR SEARCH. AND REMEMBER TO FIND CL 

UES AND TYPESCORE "; 
3850 PRINT "TO DISCOVER THE ITEMS NEEDED." 

3860 PRINT " ALSO IN MOST CIRCUMSTANCES THE 1ST 3 LETTERS OF A 

VERB OR NOUN WILL BE ACCEPTED AS THE FULL WORD." 
3870 PRINT© 965, "HIT ENTER TO START"; : INPUT A$ : RETURN 



146 BASIC Adventures 



Temple of the Sun 



3880 REM 

3890 REM ** DATA TABLES ** 
3900 REM 
3910 REM 

3920 REM ** LOCATION DATA TABLE ** 

394" DATA IN THE HIGH PRIEST WORSHIP ROOM 12 STONE ALTARS NE, 
mp 5 IN A TROPICAL GARDEN, TREES FOLIAGE, NSE, NESE, Z 

3950* DATA IN A ROOM OF FINE APPAREL, HIEROGLYPHICS , NS, SE, 4, I 
N THE SHAMAN TOMBS, SEATED MUMMIES, S, SE, 3 

TQfiCl DATA IN THE ROOM OF FINE APPAREL, , NE, NE, 3 

3970 DATA IN A JAGUAR ROOM, 3 JAGUARS, NSEW, NENWSESW, 1, IN RAI 
I AND FOLIAGE, STATUE OF THE RAIN GOD TLALOC, SEW, SESW, 4, IN 

3980 H DATA E A S BRONZE BOX, SEW, SESW, 2, IN THE JAGUAR ROOM, 3 JAGU 

-F SSiS mss oF^?=Ror- steel 8 

4010' DATA YOUR REFLECTION, NW, NW, 1 , 
4020 DATA NEAR A WATER FALL BATH, WATER FALL POOL, NSW, SW, 2, 
IN A SHRINKING ROOM, SKELETON DUST WALLS COMING CLOSER, , 5 

40'40'DATA'lN ROOM MADE OF OBSIDIAN MIRRORS YOUR ^FLECTION, SW, 

4 sfDATA Ta ^^C^-^^S^ W' ^ ° 
N THE STEPS TO THE TEMPLE OF THE SUN, DARK ENTRANCE , S, , b 

4060 REM .4 

4070 REM ** ITEMS DATA TABLE 

4080 REM ^ rtBrtlJtl « . mtmtaTURE FEATHERED ROBE, 

4090 DATA SMALL FEATHERED CROWN, 1, , MINIAT URE FLM H 

1, , CEREMONIAL MASK, 2, , COTTON ROBE, 2, , CROWN 

FEATHERS, 2, 4 aqht ttht 1 20, GOLD, 1, -7, 

4100 DATA ROBE OF FEATHERS, 2, , F ^ ASH ^ IG ^p^ C K , ' 2 , 19 KNIFE, 
IVORY STATUE, 1, 9, JADE EYES, 1, -8, KNAPSACK. , z, 

l ' „ . n t?p ATHPRED MASK OF GOLD, 2, , TINY GOLD 

^'MASri'^^oGcH^Nl'APROnADror 8 DEER SKIN, 2, , SNAKES, 

4120 DATA TEETH OF GOLD, I, -3, URN OF CRYSTAL, 1, II, CHARRED W 
OOD, 1, 

4130 REM m . D r* ** 

4140 REM ** COMMAND DATA TABLE 

4150 REM T ova rrr TFT GO , PUT, REA, RUN , SWI, USE, 

4160 DATA ATT, DRI , EXA, KIL ' ^ ET ' ~° 'J. c A v SCO, THR, TUR 
WEA, DRO, INV, JUM, LIG, LIS, PRA, QUI, SAY, SCO, in , 

4180 REM ** ERROR TRAPPING ROUTINE ** 
4190 REM 

4200 RESUME 3310 
4210 REM 

4220 REM ** END OF PROGRAM 



Temple of the Sun 



BASIC Adventures 147 



Chapter Eight 

Lost Ship 
by Charles Forsythe 



About the author 



Charles Forsythe was born in southern Turkey. His parents, missionaries at the time, 
moved to Washington DC shortly after Charles arrived. 
His first contact with computers came in the third grade. 

"I didn't have any idea what it was supposed to do", he recalls, "but watching it spit 
out paper tape and play music was fascinating. I was hooked." 

Charles' family moved to the Boston area, where his father assumed the Assistant 
Headmaster postion at The Carrol School, an education center for educationally 
handicapped children. It was after the school purchased its first computer that the 
youngster realized computers were more than large boxes with blinking lights. 

His first effort, an in-school computer dating service program, was a hit among his 
peers and teachers. Charles' talent began to show. 

It was not until his exposure to the Scott Adams adventure series that Charles' 
programming began to take form and direction. He was excited about adventure, but 
like all youngsters, was unable to buy the programs he needed to satisfy his new interest. 
So he began writing them. 

Lost Ship adventure is his first commercial effort. At age fifteen, he is considered one 
of the foremost junior programmers in the country. He plans new adventures and has 
taken the inevitable step to machine language programming, which seems to be the 
karma of most young adventure authors. 



Note: The save game routine in this program is for tape only. Disk routines may be 
added by modifying lines 1970 to 2050. 

In the program listing, the caret is used to denote the up-arrow key. 



148 BASIC Adventures 



10 CLEAR 1500 : M$ = "ABC ABC ABC ABC" 

20 M = VARPTR (M$ ) : Ml = PEEK (M + 1) : M2 = PEEK (M + 2) 

30 FOR T = TO 11 : READ M : POKE T + (M2 * 256 + Ml), M : NEXT 

: DATA 33, 128, 62, 17, 64, 62, 1, 128, 1, 237, 176, 201 
40 RESTORE : DELETE 30 - 80 

50 ' THE FIRST TIME YOU RUN THE PROGRAM, THE READY PROMPT 
60 ' WILL SIMPLY POP UP. RUN IT AGAIN AND THE PROGRAM WILL 
70 • WORK FROM THEN ON. IT IS SUGGESTED THAT YOU RUN AT 
80 ' LEAST LINES 10-40 BEFORE SAVING THE GAME. 
'90 CLS : R = 24 : = 28 
100 DIM RD$ (R , 2), 0S$(3, 2), DH$(R) : IF PEEK(16396) = 195 THEN 
Dl = 1 : DEFUSR = M2 * 256 + Ml ELSE POKE 16526, Ml : POKE 
16527, M2 

110 DIM 0$(0), P(0) : FOR T = 1 TO 6 : READ AD$ (T) : NEXT : AL = 
70 : 1$ = "X" : I = VARPTR (1$ ) : POKE I + 1, 197 : POKE 1+2 

120 FOR T = 1 TO 3 : READ 0S$(T, 1), OS$(T, 2) : NEXT : READ VH$ 

: READ VI$ : VH$ = VH$ + VI$ : VI$ = "" : GOTO 1880 
130 CLS : PRINT© 768, CHR$(168) CHR$(176) CHR$(178) CHR$(191) CH 

R$ (177) .CHR$ (176) CHR$(148)" LOST SHIP ADVENTURE" 
140 PRINT CHR$(172) CHR$(144) " " CHR$(191) " " CHR$(160) CHR$(1 
56) " BY CHARLES FORSYTHE 
" CHR$(130) STRING$ (3,131) CHR$(129) 
150 PRINTS 0, "<" STRING$(22, "-")"LOST SHIP ADVENTURE" STRING$ ( 
21 "-" ) '•>" 

160 FOR T = 1 TO R : READ RD$(T, 1), RD$(T, 2) : NEXT : FOR T = 
1 TO : READ 0$ (T) , P (T) : NEXT : FOR T = 1 TO R : READ DH$ : 
RD$(T, 2) = DH$ + RD$(T, 2) : NEXT : Yl = 1 
170 PRINT© 128, STRING$(255, 32)" 

"; : PRINTS 128, RD$(Y1, 1) 

180 PRINT© 320, "YOU SEE: "; : FOR T = 1 TO : IF P(T) <> Yl TH 
EN 20 

190 FOR N = 7 TO LEN(0$(T)) : IF MID$ (0$ (T) , N, 1) = "*" THEN PR 
INT " "; : GOTO 200 ELSE PRINT MID$ (0$ (T) , N, 1); : NEXT N : 
PRINT " " * 

200 NEXT T :'lF PEEK(16416) = 72 THEN PRINT "NOTHING SPECIAL" CH 
R$(30) ELSE PRINT CHR$(30) Xf.-Z 

210 PRINT© 448, "OBVIOUS EXITS: " ; : FOR T = 1 TO 6 : IF MID$ (RD 
$(Y1, 2), T, 1) = "1" THEN PRINT AD$ (T) " "; : NEXT ELSE NEXT 

220 PRINT© 512, "< 

>»; 

230 PRINT© 960, " >",* 

240 IF PEEK(14502) = 3 THEN PRINT CHR$(15); : GOTO 1050 ELSE PRI 
NT CHR$(14); : FOR T = 1 TO 20 : A$ = INKEY$ : IF A$ = "" THEN 
NEXT ELSE 260 

250 IF PEEK(14502) = 3 THEN PRINT CHR$(15); : GOTO 1050 ELSE PRI 
NT CHR$(15); : FOR T = 1 TO 20 : A$ = INKEY$ : IF A$ = "" THEN 
NEXT : GOTO 240 ELSE 260 
260 IF ASC(A$) = 8 AND POS(0) <> 5 THEN 300 

270 IF A$ = CHR$(13) THEN 310 ELSE IF A$ = "~" THEN PRINT CHR$(1 

5) ; : GOTO 1970 
280 IF ASC(A$) < 32 OR ASC(A$) > 90 THEN 240 

290 IF POS(0) = 31 THEN 240 ELSE IF A$ = " " AND POS(0) = 5 THEN 
240 



Lost Ship 



BASIC Adventures 149 



300 PRINT A$; : GOTO 240 

310 IF POS(0) = 5 THEN 240 ELSE POKE I, POS(0) - 5 : 12$ = 1$ : 

PRINT CHR$(15); : GOSUB 530 
320 V$ = LEFT$(I2$, 4) : IF MID$(V$, 3, 1) = " " AND RIGHT$(V$, 

1) <> " " THEN V$ = LEFT$(V$, 2) + " " 
330 GOSUB 450 

340 IF RIGHT$(I2$, 1) = " " THEN 12$ = LEFT$(I2$, LEN(I2$) - 1) 
: GOTO 340 

350 FOR NP = LEN(I2$) TO 1 STEP - 1 : IF MID$(I2$, NP, 1) <> " " 
THEN NEXT : N$ = "" : NP = LEN(I2$) + 1 ELSE N$ = MID$(I2$, N 

P + 1, 4) 
360 FOR T = 1 TO LEN ( VH$) STEP 6 

370 IF V$ <> MID$(VH$, T, 4) THEN NEXT : PRINT "I DON ' T KNOW HOW 
TO " CHR$(34) LEFT$(I2$, NP - 1) CHR$(34)" SOMETHING."; : GOS 
UB 530 : GOTO 230 ELSE V = VAL (MID$ ( VH$ , T + 4, 2)) : VN = (T - 
l)/6 + 1 

380 N$ = N$ + STRING$(4 - LEN (N$ ) , * ") : IF V = 3 THEN 410 ELSE 

IF VN = 22 THEN 440 
390 IF N$ = " " THEN N = : GOTO 440 ELSE IF N$ = "SUIT" THE 
N PRINT "YOU'RE WEARING IT AND YOU CAN'T REACH THE ZIPPER."; : 
GOSUB 530 : GOTO 230 
400 FOR T = 1 TO : IF N$ <> LEFT$ (0$ (T) , 4) THEN NEXT : PRINT 
"I DON'T KNOW WHAT A " CHR$(34) MID$(I2$, NP + 1) CHR$(34)" IS 
."; : GOSUB 530 : GOTO 230 ELSE N = T : GOTO 420 
410 FOR T = 7 TO LEN(RD$(Y1, 2)) STEP 2 : IF LEFT$ (N $ , 2) - MID$ 
(RD$(Y1, 2), T, 2) THEN Yl = VAL (MID$ (RD$ (Yl , 2), T + 2, 2)) : 
GOTO 170 ELSE NEXT : PRINT "YOU CAN'T GO THAT WAY YET..."; : 
GOSUB 530 : GOTO 230 
420 FOR T = 7 TO LEN(0$(N)) : IF MID$(0$(N), T, 1) <> "*" THEN N 

EXT 

430 IF MID$(0$(N), T - 1, 1) = "S" AND MID$(0$(N), T - 2, 1) <> 

"S" THEN HM = 2 ELSE HM = 1 
440 ON V GOTO 930, 1110, 170, 1140, 1270, 1340, 1440, 1530, 1050 

, 1570, 1620, 1760, 1830, 900, 910, 920 
450 IF Yl = 1 OR Yl > 7 THEN 480 ELSE AL = AL - 1 : IF AL = TH 

EN PRINT "YOU HAVE RUN OUT OF AIR IN YOUR TANKS! YOU HAVE DROW 

NED"; : GOSUB 530 : INPUT "PLAY AGAIN"; A$ : IF LEFT$(A$, 1) = 
"Y" THEN RUN ELSE CLS : END 
460 IF AL = 1 THEN PRINT "YOUR AIR GAUGE READS IN THE RED!"; : G 

OSUB 530 : GOTO 480 
470 IF AL < 10 THEN PRINT "YOUR AIR GAUGE READS IN THE YELLOW... 

" ; : GOSUB 530 
480 MT = MT - 1 : IF MT <> THEN RETURN 
490 IF P(19) = 8 THEN P(19) = 14 : MT = - 1 : RETURN 
500 IF P(ll) > 7 AND P(ll) < 14 THEN P(ll) = - 2 
510 IF P(17) > 7 AND P(17) < 14 THEN P(17) = - 2 
520 MT = 5 : P(19) = 8 : RETURN 

530 J = USR(I) : PRINTS 960, CHR$(30); : RETURN 
540 DATA NORTH, SOUTH, EAST, WEST, UP, DOWN 

550 DATA THAT'S, THOSE ARE, IS TO MUCH, ARE TOO MANY, THAT, THOS 
E 

560 DATA GET 01DROP02GO 03EXAM04WITH05SET 06ENTE03GI VE07TAKE01P 
ICK0 1CLIM0 3PLOT06BREA08INVE09READ04OPEN1 UNLO10KILL11 



Lost Ship 

150 BASIC Adventures 



570 DATA STAB11CUT 1 1ST0R12SAY 1 1SMAS08SEAR04MARK06SWIM0 3CATC1 3F 
OLL0 3J UMP0 3EAT 1 1DI VE0 3QUIT14SCOR1 5HELP1 6L0WE 1 1SAIL1 1SING 1 1FEE 
D11CHIP08 

580 DATA YOU ARE FLOATING ABOVE THE WATER NEXT TO THE SIDE OF A 
LARGE 

SHIP. ALL THE LIFE RAFTS HAVE BEEN TAKEN AND THE SAILS NEED RE- 
PAIR. 

590 DATA DO02UP08OC02SH08, YOU ARE UNDERWATER BENEATH A SHIP OF 

SOME SORT, UP01SU01EA03WE04NO06SO06 
600 DATA YOU ARE UNDERWATER. YOU CAN'T SEE THE SHIP ANYMORE!, NO 

07SO06EA04WE02 

610 DATA YOU ARE UNDERWATER. YOU CAN'T SEE THE SHIP ANYMORE!, NO 
05SO06EA02WE07, YOU ARE UNDERWATER. YOU CAN'T SEE THE SHIP ANY 
MORE!, NO03SO07EA06WE05 

620 DATA YOU ARE UNDERWATER. YOU CAN'T SEE THE SHIP ANYMORE!, NO 
03SO05EA07WE04 

630 DATA YOU ARE UNDERWATER AT A CORAL REEF., NO05SO06EA03WE04UP 
24, YOU ARE ON THE DECK OF THE SHIP. IT HASN'T BEEN TOUCHED IN 
YEARS. THE RIGGING LOOKS O.K. THOUGH. 
640 DATA NO09ST09OC01UN02DO01, YOU ARE IN THE CAPTAIN'S STUDY. I 

T IS WET IN HERE. A LADDER GOESTHROUGH CEILING. 
650 DATA UP11SO08LA11NE11, YOU ARE IN THE MAP ROOM. THE WINDOWS 
LOOK OUT ONTO AN ENDLESS OCEAN. THE SEA BREEZE COMES THROUGH 
THEM. 

660 DATA NO08WI12, YOU ARE IN THE CROW'S NEST. YOU SEE SOMETHING 

THAT MIGHT BE AN ISLAND IN THE EAST., DO09LA09OF05 
670 DATA YOU ARE ON A SECONDARY DECK IN THE STERN OF THE SHIP.TH 

E WINDOWSOF THE MAP ROOM OVERLOOK IT. THE ENTRANCE TO THE CARG 

HOLD IS HERE. 

680 DATA DO13HO13EN13WI10RO10MA10, YOU ARE IN THE CARGO HOLD. MO 

ST OF THE OLD CARGO HAS DECAYED., UP12TR12 
690 DATA YOU ARE SWIMMING IN A SHALLOW AREA NEXT TO THE SHIP., U 

P08SH08BO08NO15, "YOU ARE ON A BEACH, NEXT TO THE OCEAN. YOU C 

AN SEE THE SHIP.", WA14OC14NO20 
700 DATA YOU ARE IN THE JUNGLE. YOU SEE A CAVE ENTRANCE., N022SO 

20EA21WE18CA22, YOU ARE IN THE JUNGLE. YOU CAN'T FIND A PATH! 
710 DATA NO16SO21EA20WE21, YOU ARE IN THE JUNGLE. YOU CAN'T FIND 
A PATH!, N021S021EA17WE18, YOU ARE IN THE JUNGLE. YOU CAN'T F 

IND A PATH! 

720 DATA NO18SO21EA17WE20, YOU ARE ON A FAINT PATH LEADING FROM 

THE BEACH INTO A JUNGLE., N019S015EA18WE18PA21 
730 DATA YOU ARE IN THE JUNGLE. YOU CAN'T FIND A PATH!, N021S018 

EA19WE17, YOU ARE IN A CAVE., SOI 6EA2 3PA2 3J Ul 6 
740 DATA YOU ARE IN A CAVE PASSAGE. IT IS HARD TO SEE., WE22, YO 

U ARE ON A BEACH. YOU SEE THE SHIP IN THE DISTANCE., OC07NO07W 

A07SH07 

750 DATA SHIP05SAILING SHIP*A SIGN SAYS ITS NAME IS "S.S. DEATH 
FLOWER", 1, SUIT02DI VING SUIT*YOU ARE WEARING IT 

760 DATA 1000, CORA05CORAL*THERE IS A STRANGE FORMATION OF IT HE 
RE., 7, DOG 05DOG GUARDING SOUTH DOOR*IT GROWLS WHEN YOU COME 
NEAR. IT LOOKS HUNGRY., 8 ■ J . 

770 DATA BONE 02BONES* THEY ARE THE CORAL ENCRUSTED BONES OF AN OL 
D SAILOR., -1, FEAT0 2 FEATHER* IT ' S A PEN!, 11, EGGS05GULL EGGS* 
NOTHING SPECIAL 



Lost Ship 



BASIC Adventures 151 



780 DATA 11, PAPE02PAPERS*THEY USED TO BE MAPS BUT THE INK HAS R 
UN, 10 

790 DATA MAP 06MAP ON TABLE* IT IS NAILED DOWN WITH TACKS. AN "X" 

MARKS THE SHIP'S POSITION., 10 

800 DATA LADD06LADDER* IT GOES UP THROUGH A TRAP DOOR TO THE CROW 

'S NEST. , 9, DAGG 3 JEWELED DAGGER*VERY GOOD WORKMANSHIP. THE B 

LADE COULD CHIP THROUGH SOLID ROCK! , 11 
810 DATA SACK05ROTTING SACKS*THE PUTRID SACKS LIE IN A HEAP IN 

NE CORNER, 13, MACH06RUSTED MACHINE* IT IS TOO CORRODED TO IDEN 

TIFY 

820 DATA 13, NET 02NET*SMALL NET FOR CATCHING FISH. IT SEEMS IN 

GOOD CONDITION. , 13 
830 DATA SAIL05X*X, -1, COUR05X*X, -1, BAG 03BAG*IT'S FULL OF GO 

LD! ! ! , 13, BOOK02BOOK*X, 9 
840 DATA MANA05FAT MANATEE*THERE ' S SOMETHING IN IT'S MOUTH, -1, 

PIRA05DEAD PIRATE*LET HIM REST IN PEACE!, 22, ROCK05ROCK*X, 23 

850 DATA KEY 03GOLD KEY*NOTHING SPECIAL, -2, S*IGN06SIGN STUCK IN 

SAN D* "TAKE TREASURES HERE AND SAY 'STORE'", 24 
860 DATA FISH02FISHES*THEY SWIM QUICKLY, 14, SAN D0 5 SAND* IT MAKES 
UP THE BEACH., 15, FLAG05BLACK FLAG*IT ' S THE SKULL AND CROSS 
BONES! 

870 DATA 8, SEAW05SEAWEED*NOTHING SPECIAL, 14, STEA02STEAK*IT' S 

ALL ROTTEN. NOT EVEN A DOG WOULD EAT IT!, 8 
880 DATA 000011, 111110, 111100, 111100, 111100, 111100, 111110, 
100001, 010010, 100000, 000001, 000001, 000010, 100010, 10000 

0, 111100, 111100 
890 DATA 111100, 111100, 111100, 111100, 011000, 000100, 100000 
900- PRINT "YOU QUIT WITH"TS"TREASURES . THAT'S "TS * 25"%."; : GO 

SUB 530 : GOSUB 530 : PRINT@ 896, " " ; : END 
910 PRINT "YOU HAVE"TS"TREAS URES STORED."; : GOSUB 530 : GOTO 23 



920 PRINT "TRY EXAMINING THINGS."; : GOSUB 530 : GOTO 230 
930 IF N=7 AND Yl=ll PRINT "A SEAGULL FLIES AND HITS YOU FROM BE 
HIND. YOU FALL INTO THE"; : GOSUB530 : PRINT "OCEAN AND LOSE E 
VERYTHING YOU ARE HOLDING."; : GOSUB530 : FOR T = 3 TO : IF 
P(T)=1000 P(T)=6 : NEXT : Yl=4 : GOTO170 ELSE NEXT : Yl=4 : GO 



TO170 






940 IF 


N = 


19 THEN PRINT "IT'S TOO FAT!"; : GOSUB 530 : GOTO 230 


950 IF 


N = 


4 OR N = 20 THEN 1140 


960 IF 


N = 


21 AND LEFT$ (0$ (21) , 1) = "R" THEN PRINT "IT'S A BIG 


ROCK! 




GOSUB 530 : GOTO 230 


970 IF 


N = 


24 AND Yl = 14 THEN PRINT "YOU HAVE TO 'CATCH' THEM F 


IRST. 


•« . , 
i « 


GOSUB 530 : GOTO 230 


980 IF 


N = 


26 THEN PRINT "IT'S UP TOO HIGH!"; : GOSUB 530 : GOTO 


230 







990 IF P(N) = 1000 THEN PRINT "YOU HAVE "0S$(3, HM) " ALL READY!" 

; : GOSUB 530 : GOTO 230 
1000 IF P(N) <> Yl THEN PRINT 0S$(1, HM) " NOT HERE."; : GOSUB 53 

: GOTO 230 

1010 OT = VAL (MID$ (0$ (N ) , 5, 2)) : IF OT = 5 THEN PRINT "THERE " 

0S$(2, HM) " TO GET!"; : GOSUB 530 : GOTO 230 
1020 IF OT = 6 THEN PRINT 0S$(1, HM) " HELD DOWN BY SOMETHING."; 

: GOSUB 530 : GOTO 230 



152 BASIC Adventures 



Lost Ship 



1030 IF OQ = 5 THEN PRINT "YOU HAVE TOO MUCH ALL READY."; : GOSU 
B 530 : GOTO 230 

1040 OQ = OQ + 1 : P(N) = 1000 : PRINT "YOU GET "0S$(3, HM) ; : G 

OSUB 530 : GOTO 180 
1050 PRINT "YOU HAVE: "; : FOR T = 1 TO : IF P(T) <> 1000 THEN 

NEXT T : GOTO 1090 
1060 FOR N = 7 TO LEN(0$(T)) : N$ = MID$ (0$ (T) , N, 1) : IF N$ = 

"*" THEN 1100 ELSE PRINT N$; 
1070 IF POS(0) = 60 THEN GOSUB 530 
1080 NEXT N : NEXT T 
1090 GOSUB 530 : GOTO 230 

1100 IF POS(0) > 58 THEN GOSUB 530 : NEXT T : GOTO 1090 ELSE PRI 

NT " "; : NEXT T : GOTO 1090 
1110 ' 

1120 IF P(N) <> 1000 THEN PRINT "YOU DON'T HAVE "0S$(3, HM)"!"; 

: GOSUB 530 : GOTO 230 
1130 OQ = OQ - 1 : P(N) = Yl : PRINT "YOU DROP "0S$(3, HM) " . ." ; : 

GOSUB 530 : GOTO 180 
1140 IF N = 7 THEN 930 

1150 IF N = 6 THEN 0$(N) = "PEN 02PEN*IT'S A PEN!" : GS = 1 

1160 IF N = 21 AND LEFT$ (0$ (21 ) , 1) = "R" THEN 0$(21) = "CHES02C 

HEST*IT'S A TREASURE CHEST. BUT IT'S LOCKED." : GS = 1 
1170 IF N <> 18 THEN 1220 ELSE IF P(18) <> Yl AND P(18) <> 1000 

THEN 1210 

1180 PRINT "FULL FATHOM FIVE THY FATHER LIES;"; : GOSUB 530 : PR 

INT "OF HIS BONES ARE CORAL MADE ; " ; 
1190 GOSUB 530 : PRINT "THOSE WERE PEARL'S THAT WERE HIS EYES."; 

: GOSUB 530 : PRINT "NOTHING OF HIME THAT DOTH FADE"; : GOSUB 

530 

1200 PRINT "BUT DOTH SUFFER A SEA CHANGE."; : GOSUB 530 : PRINT 

"INTO SOMETHING RICH AND STRANGE..."; : GOSUB 530 : GOTO 230 
1210 ' 

1220 IF P(N) <> Yl AND P(N) <> 1000 THEN PRINT 0S$(1, HM) " NOT H 

ERE."; : GOSUB 530 : GOTO 230 
1230 FOR T = 7 TO LEN(0$(N)) : IF MID$(0$(N), T, 1) <> "*" THEN 

NEXT 

1240 FOR X = T + 1 TO LEN(0$(N)) : PRINT MID$(0$(N), X, 1); : IF 

POS(0) = 60 THEN : GOSUB 530 : NEXT ELSE NEXT 
1250 GOSUB 530 

1260 IF GS = 1 THEN GS = : GOTO 180 ELSE 230 

1270 IF N = 11 AND Yl = 7 AND P(5) = - 1 THEN PRINT "YOU'VE UNCO 

VERED SOMETHING"; : GOSUB 530 : P(5) = 7 : GOTO 170 
1280 IF N = 14 AND P(24) <> Yl PRINT "THEY'RE NOT HERE."; : GOSU 

B 530 : GOTO 230 
1290 IF N = 14 AND OQ = 5 PRINT "YOU HAVE TOO MUCH ALL READY."; 

: GOSUB 530 : GOTO 230 
1300 IF N = 14 AND P(14) <> 1000 THEN PRINT "YOU DON'T HAVE THAT 

."; : GOSUB 530 : GOTO 230 
1310 IF N = 11 AND Yl = 7 PRINT "YOU'VE BROKEN ENOUGH ALL READY. 

"; : GOSUB 530 : GOTO 230 
1320 IF N = 14 THEN OQ = OQ + 1 : P(24) = 1000 : PRINT "O.K."; : 

GOSUB 530 : GOTO 170 
1330 PRINT "IT DOESN'T WORK."; : GOSUB 530 : GOTO 230 
1340 IF N = 15 THEN 1400 



Lost Ship 



BASIC Adventures 153 



1350 IF Yl <> 10 THEN PRINT "YOU CAN'T DO THAT HERE!"; : GOSUB 5 

1360 IF G N T <> 2 16 AND N <> 9 THEN PRINT "YOU CAN'T "V$ " "OS$(3, H 

M) " ! " ; : GOSUB 530 : GOTO 230 
1370 IF P(6) <> 1000 OR LEFT$(0$(6), 1) = "F" THEN PRINT "YOU DO 

N'T HAVE ANYTHING TO MARK THE MAP WITH!"; : GOSUB 530 : GOTO 2 

30 

1380 IF CS = THEN PRINT "YOU MARK A COURSE TO A NEAR ISLAND IN 
THE EAST."; : GOSUB 530 : CS = 1 : 0$(9) = "MAP 06MAP ON TABL 
E*STUCK DOWN WITH TACKS. IT NOW HAS A COURSE PLOTTED." : GOTO 
230 

1390 PRINT "YOU'VE DONE THAT ALL READY."; : GOSUB 530 : GOTO 230 

1400 IF Yl < 8 OR Yl > 13 THEN PRINT "YOU CAN'T DO THAT HERE!"; 

: GOSUB 530 : GOTO 230 ELSE IF CS = THEN PRINT "YOU HAVE NO 

COURSE!"; : GOSUB 530 : GOTO 230 
1410 IF CS = 1 THEN CS = 2 : MT = 10 : P(19) = 15 

1420 IF CS = 2 THEN RD$(8, 2) = "110001DO14OC14NO09SO10WA14ST09" 
: P(7) = - 1 : CS = 3 : PRINT "O.K."; : GOSUB 530 : P(l) = 14 
: GOTO 230 

1430 IF CS = 3 THEN RD$(8, 2) = " 110001NO09ST09UN02DO01OC01RO10S 
010" : P(7) = 11 : CS = 2 : PRINT "O.K."; : P(D = 1 : GOSUB 5 
30 : GOTO 230 

1440 IF Yl <> 8 THEN 1480 

1450 IF P(N) <> 1000 THEN PRINT "YOU DON'T HAVE "0S$(3, HM) • ; 

: GOSUB 530 : GOTO 230 
1460 IF N <> 5 THEN PRINT "OK... NOTHING HAPPENS."; : OQ = OQ - 

1 : GOSUB 530 : P(N) = Yl : GOTO 180 
1470 P(5) = - 1 : PRINT "THE DOG TAKES THE BONES AND RUNS OFF SO 

MEWHERE."; : OQ = OQ - 1 : GOSUB 530 : P(4) = - 1 : RD$(8, 2) 

= "110001NO09ST09UN02OC01RO10SO10DO01" : GOTO 170' 
1480 IF N <> 24 OR Yl <> P(19) OR P(N) <> 1000 THEN 1520 
1490 OQ = OQ - 1 : PRINT "THE MANATEE TAKES THE FISH. WHEN HE OP 

ENS HIS MOUTH, SOMETHING"; : GOSUB 530 
1500 PRINT "FALLS OUT."; : GOSUB 530 : FOR T = 1 TO : IF P(T) 

= - 2 THEN P(T) - Yl : NEXT ELSE NEXT 1 
1510 P(19) = - 1 : P(24) = - 1 : PRINT "THE MANATEE GOES OFF"; : 

GOSUB 530 : GOTO 170 
1520 IF P(N) <> 1000 THEN PRINT "YOU DON'T HAVE "0S$(3, HM) 

: GOSUB 530 : GOTO 230 ELSE PRINT "OK... NOTHING HAPPENS. 

OQ = OQ - 1 : GOSUB 530 : P(N) = Yl : GOTO 180 
1530 IF N = 7 THEN 930 

1540 IF N = 3 AND Yl = 7 THEN PRINT "WITH WHAT, I.E. " CHR$(34) M 
WITH FEATHER" CHR$(34); : GOSUB 530 : GOTO 230 

1550 IF N = 3 THEN PRINT "IT'S NOT HERE."; : GOSUB 530 : GOTO 23 


1560 PRINT "YOU CAN'T BREAK THAT."; : GOSUB 530 : GOTO 230 
1570 IF N <> 21 THEN PRINT "YOU CAN'T OPEN "0S$(3, HM) ; : GOSUB 
530 : GOTO 230 

1580 IF MID$(0$(21), 7, 1) = "0" THEN PRINT "IT'S OPEN ALL READY 

!"; : GOSUB 530 : GOTO 230 
1590 IF P(21) <> 1000 AND P(21) <> Yl THEN PRINT "IT'S NOT HERE. 

: GOSUB 530 : GOTO 230 
1600 IF P(22) <> 1000 THEN PRINT "IT'S LOCKED AND YOU DON'T HAVE 
ANYTHING TO OPEN IT WITH!"; : GOSUB 530 : GOTO 230 



ii ii 
. 

it . 



154 BASIC Adventures 



1610 PRINT "O.K."; : GOSUB 530 : 0$(21) = "CHES03OPEN CHEST*IT'S 

FULL OF GEMS." : GOTO 170 
1620 IF VN = 18 OR VN = 19 OR VN = 20 THEN PRINT "DON'T BE SO DE 

STRUCTIVE!"; : GOSUB 530 : GOTO 230 
1630 IF VN <> 22 THEN 1650 ELSE PRINT CHR$(34); : FOR X = 1 TO L 

EN (12$) : IF MID$(I2$, X, 1) <> " " THEN NEXT : PRINT CHR$(34) 

. • GOSUB 530 '. GOTO 230 
1640*FOR T = X + 1 TO LEN(I2$) : PRINT MID$(I2$, T f 1); : NEXT : 

PRINT CHR$(34); : GOSUB 530 : GOTO 230 
1650 IF VN = 30 AND N = 28 AND P(28) = 1000 THEN P(N) = - 1 : PR 

INT "YOU FEEL SICK."; : GOSUB 530 : GOTO 180 
1660 IF VN = 30 AND N = 28 AND P(28) = Yl THEN P(28) = - 1 : PRI 

NT "YOU FEEL SICK."; : GOSUB 530 : GOTO 180 
1670 IF VN = 35 AND Yl = 8 THEN PRINT "THERE IS NO ROPE."; : GOS 

UB 530 : GOTO 230 , _ B „ 

1680 IF VN = 35 THEN PRINT "THERE IS NOTHING TO LOWER HERE. ; : 

GOSUB 530 : GOTO 230 
1690 IF VN = 36 THEN N = 15 : GOTO 1340 

[ill IF VN = 37 THEN PRINT "LA LA LA DEE DA..."; : GOSUB 530 : G 

17?0 O IF 3 VN = 30 AND N = 28 THEN PRINT "THAT'S NOT HERE!"; : GOSU 

1720 5 IF VN G = T 30 2 THEN PRINT "IT WOULD BE FOOLISH TO EAT "0S$(3, H 

173H/VN G =°TaN 3 dV; GOT 8 O AND P(4) - 8 THEN PRINT "IF HE'S HUNG 

l 7 f ; G F IV V^= HI 38 AND^Yl^ = G p" 19) ^P^INT^fF^f HUNGRY 'GIVE' 

IT SOMETHING."; : GOSUB 530 : GOTO 230 
1750 PRINT "THERE'S NOTHING TO 'FEED' HERE."; : GOSUB 530 : GOTO 

1760 3 IF Yl <> 24 THEN PRINT "YOU CAN'T DO THAT HERE."; : GOSUB 5 

30 : GOTO 230 ELSE 1780 „ DTK ,^ .cr™p.-T<!«T 

1770 OQ = OQ - 1 : TS = TS + 1 : P(N) = - 1 : PRINT SCORE. TS T 
REASURES. " ; : GOSUB 530 : GOTO 230 

1780 IF N = 21 THEN 1820 ™ OII o c™ . rnTO 230 

1790 IF N = THEN PRINT "STORE WHAT? ; : GOSUB 530 . GOTO 230 
1800 IF VAL(MID$(0$(N), 5, 2)) <> 3 THEN PRINT 0S$(1, HM) NOT A 

IBl^lf Jft! VlSS™ E 5 N PRIN? T "YOU CAN'T STORE SOMETHING YOU 

^l/^\^ U VV <> G "0« PRINT "YOU'RE NOT SURE IT 

•S A TREASURE, IT COULD BE FULL OF DIRT!"; : GOSUB 530 . GOTO 

18 2 30 l| L N E = 17 17 THEN PRINT "IT'S TOO BIG TO CATCH "; : GOSUB 530 
1840 IF N = 4 THEN PRINT "YOU TRY BUT IT BITES YOU."; : GOSUB 53 

1850 : IF°N°<> 3 24 THEN PRINT "YOU CAN'T CATCH "0S$(3, HM) " . " ; : GO 

m^F 30 V<> O pU4 30 THEN PRINT "THOSE ARE NOT HERE."; : GOSUB 53 

1870 ! PRINT "WITH WHAT I.E. WITH FEATHER. " ; : GOSUB 530 : GOTO 23 

1880 PRINT STRINGS (14, 176) : PRINT CHR$ ( 191 ] ,« 1 ) NEW GAME " CHRS 
(191) : PRINT CHR$(191)"2)SAVED GAME" CHR$(191) : PRINT STRING 
$(14, 131) 



Los* Ship 



BASIC Adventures 155 



1890 A$ = INKEY$ : IF A$ = "" THEN 1890 ELSE IF A$ = "2" THEN 20 

00 ELSE IF A$ <> "1" THEN 1890 
1900 CLS : PRINT " LOST SHIP ADVENTURE" 

1910 PRINT "WHILE DIVING FOR TREASURE IN THE CARIBBEAN, YOU COME 
ACROSS A" 

1920 PRINT "LONG LOST PIRATE SHIP, ADRIFT FOR YEARS • TO MOVE YOU 
RSELF AND" 

1930 PRINT "'DROP CAT'. JUST SAY WHAT SOUNDS SENSIBLE. TO GET A 
LIST OF" 

1940 PRINT "WHAT YOU HAVE, SAY 'INVENTORY' OR PRESS -SHIFT I-. 

PRESS 

1950 PRINT "TO SAVE THE GAME ON TAPE. GOOD LUCK! 

-PRESS ENTER-" 
1960 IF INKEY$ <> CHR$(13) THEN 1960 ELSE 130 

1970 GOSUB 530 : PRINT "PREPARE TO FOR SAVING."; : GOSUB 530 : A 
$ = INKEY$ : FOR T = 1 TO 500 : NEXT : PRINT "AND PRESS ENTER. 
"; : GOSUB 530 

1980 IF INKEY$ <> CHR$(13) THEN 1980 ELSE IF Dl = 1 THEN CMD"T 
1990 PRINT # - 1, 0$(6), 0$(9), 0$(21), RD$(8, 2) : FOR T = 1 TO 

STEP 4 : PRINT#-1, P(T), P(T + 1), P(T + 2), P(T + 3) : NEX 
T : PRINT#-1, OQ, Yl, AL, CS, MT, TS : RUN 

2000 PRINT "PREPARE TAPE FOR LOADING OF DATA, AND THEN PRESS -EN 
TER-." 

2010 IF INKEY$ <> CHR$(13) THEN 2010 

2020 FOR T = 1 TO R : READ RD$ (T, 1), RD$(T, 2) : NEXT : FOR T = 

1 TO : READ 0$ (T) , P : NEXT 

2030 FOR T = 1 TO R : READ DH$ : RD$(T, 2) = DH$ + RD$(T, 2) : N, 

EXT : IF Dl = 1 THEN CMD"T 
2040 INPUT#-1, 0$(6), 0$(9), 0$(21), RD$(8, 2) : FOR T = 1 TO 

STEP 4 : INPUT#-1, P (T) , P (T + 1), P (T + 2), P (T + 3) : NEXT : 
INPUT#-1, OQ, Yl, AL, CS, MT, TS : CLS 
2050 PRINT@ 0, "<" STRING$(22, "-")"LOST SHIP ADVENTURE" STRING$ 

(21, "-«)»>» : GOTO 170 




156 BASIC Adventures 



Lost Ship 



Chapter Nine 

Spider Mountain 
byTeri Li 

About the author 



Teri Li wrote Spider Mountain and Lost 
Dutchman's Gold almost back to back in the early 
days of commercial adventure. If one examines the 
two programs it is easy to see that the same 
structure was used in both. However, the map 
paths are profoundly different. 

Spider Mountain and Dutchman's Gold were the 
cornerstone on which The Programmer's Guild's 
nine unit adventure line was founded. They were 
introduced to the marketplace at a time when 
BASIC was a dirty word insofar as adventure was 
concerned. 



Of all the programs in this book, these two are 
probably the easiest to modify to the reader's own 
intentions. They have already been translated to 
the Apple computer and Dutchman has been 
translated for the Atari computer. 

Author Li has been active in software, as well as 
being a well published technical writer for various 
computer magazines. His outside interests include 
motorcycling, photography, cats and a passion for 
science fiction, especially Star Trek and Doctor 
Who. He plans to eventually become a full-time 
freelance writer. 




BASIC Adventures 157 



10 CLS : CLEAR 950 : DEFINT A - L, U - Z : DEFSTR M - T : DIM N( 
7), 0(32, 3), R(46) : M = STRING$(63, " = ") : POKE 16553, 255 • 
B = : IN = B : LN = 100 : XI =B : X2=B : T= "" 
20 Ml = T : M2 = T : QM = T : U = B : Ul = B : IM = 2 : XA = 5 : 
XB = XA : XC = B : XD = IM : GOSUB 1870 : ON ERROR GOTO I860* 
: FOR L = B TO 29 : FOR I = B TO 7 : READ N(I) : NEXT I f L 
30 FOR I = 6 TO 32 : READ 0(1, 0), 0(1, 1), 0(1, 2) : 0(1, 3) = 
"" : NEXT I : FOR I = B TO 46 : READ R(I) : NEXT : L = 1 : prj 
NT CHR$(28); : PRINTS 448, " : GOSUB 1900 
40 IF L < 13 OR (CL > AND (0(12, 3) = " 1 " OR 0(12, 2) = STR$(L 
))) THEN 80 ELSE PRINT@ 0, "ITS TOO DARK TO SEE!!"; CHR$(30) : 
IF L > 13 THEN PRINT "YOU HEAR A STRANGE NOISE!" 
50 GOTO 260 
60 T = "OK" : RETURN 

70 B = 1 : PRINT " YOU SEE: "; CHR$(30); : PRINT : RETURN 

80 Zl = Zl + 1 : IF CL = 1 THEN LN = LN - 1 : IF LN < 1 THEN CL 
= 

90 RESTORE : IF L <> LI THEN FOR LI = TO L : FOR I = TO 7 : 

READ N(I) : NEXT I, LI : LI = L 
100 B = : PRINT© 0, CHR$(30) : PRINT : PRINT : PRINT : PRINT : 
PRINT : PRINT@ 64, "YOU ARE "N(0)"." ; : FOR J = TO 32 : IF 
J = 22 THEN 140 ELSE IF VAL(0(J, 2)) <> L THEN 180 ELSE IF B = 
GOSUB 70 

110 IF 0(J, 3) = "-7" OR 0(J, 3) = "-2" THEN PRINT "BURNED "; 
120 IF J = 1 THEN IF VAL(0(J, 2) ) = L THEN IF ( J , 3) = "" THEN 

PRINT "UNTIED "; ELSE IF 0(J, 3) = "-9" THEN PRINT "DEAD "; 
130 IF 0(J, 3) - "-3" THEN PRINT "SMASHED "; 
140 IF B = GOSUB 70 

150 IF 0(J, 3) = STR$(L) THEN PRINT "DEAD ORC. "; : IF VAL(0(J, 

2)) <> L THEN 180 ELSE ELSE IF VAL(0(J, 2)) <> L THEN 180 
160 IF CL = 1 AND J = 12 THEN PRINT "LIT "; 
170 PRINT 0(J, 0) ". "; 

180 NEXT J : IF Ul = 1 AND L = 6 THEN PRINT "OPEN TRAP DOOR. "; 

190 IF N(l) = "" THEN PRINT : GOTO 240 ELSE IF B = THEN GOSUB 
70 

200 IF L = 22 THEN IF U = THEN PRINT "LOCKED "; ELSE PRINT "UN 
LOCKED "; ' 

210 IF L = 21 THEN IF U = 1 THEN PRINT "OPEN "; ELSE PRINT "SEAL 
ED ; 

220 IF L = 21 THEN PRINT "OAK DOOR. "; 

230 PRINT N(l); "." : IF (L = 21 OR L = 22) AND U = THEN N(2) 
= LEFT$ (N ( 2) , 3) + " " 1 - 

240 PRINT : IF N(2) = "" THEN 260 ELSE PRINT "OBVIOUS EXITS ARE 
: ; : FOR I = 1 TO 4 : P = MID$(N(2), I, 1) : IF P = "N" THEN 

PRINT "NORTH "; ELSE IF P = "S" THEN PRINT "SOUTH "; ELSE IF 
P = "E" THEN PRINT "EAST "; ELSE IF P = "W" THEN PRINT "WEST " 

250 NEXT : PRINT 

260 B = : PRINT M : IF ABS ( VAL (0 ( 22 , 2)) - L) =1 THEN PRINTS 
960, "THERE 1 S NOISE UP AHEAD, SOUNDS LIKE ORCS" 

270 PRINTS 960, " WHAT DO YOU WANT TO DO NOW"- • INPUT Q 

M : IF LN < 10 AND CL = 1 THEN PRINT "YOURE TORCH IS BURNING L 
OW. " 



158 BASIC Adventures Spider Mountain 



280 IF 0(1,3) = "1" AND (QM = "DISMOUNT" OR QM = "GET DOWN") THE 

NJ=1:IN=IN+1: GOSUB 1000 : GOTO 1560 
290 IF QM = "SAVE" OR QM = "SAVE GAME" THEN INPUT "ARE YOU SURE 

. OM : IF LEFT$ (QM , 1) <> "Y" THEN 1560 ELSE 2020 
300 IF QM <> "SCORE" THEN 320 ELSE IF L <> 6 THEN T = "YOU CAN T 
YOU RE IN THE WRONG LOCATION !" : GOTO 1560 ELSE Z = : FOR 
I = 14 TO 17 : IF 0(1, 2) = " 6" THEN Z = Z + 1 
310 NEXT : PRINT "YOU HAVE" Z "TREAS URES , TOTALING" ( Z/4) * 100 " % 
. IF Z = 4 THEN PRINT "YOU MADE IT !!!" : GOTO 1770 ELSE T - 
YOU MISSED SOME OF THE TREASURE." : GOTO 1560 v-v . 

3 20 IF CL = AND L = 26 AND 0(6, 3) <> "1" AND 0(4, 3) <> "1" T 

HEN 330 ELSE 340 
330 PRINT "OH N01 

YOU'VE BEEN ATTACKED BY SHELOB, GUARDIAN OF SPIDER MOUNTAIN 

HER VENOM IS A POWERFUL NEUROTOXIN 
YOU'RE DEAD." : GOTO 1820 

340 IF QM = "HELP" THEN X = VAL(N(3)) : ON X GOSUB 1680, 1690, 1 
700 1710. 1720, 1730, 1740, 1750, 1760 : GOTO 40 

350 xi = LEN ( QM) ': IF XI < 3 THEN -T = "WHAT? " « BJ-SBJ 
OR X 2 = 3 TO XI : Ml = MID$ (QM , X2, 1) : IF Ml <> CHR$(32) THE 

360 P^L^$(QM^3) = : X iF X20X1 AND X2 + 3>X1 THEN 460 ELSE FOR I = 
TO 42 • IF POR(I) THEN NEXT : IF X1 = X2 THEN T="WHAT? : GOT 
01560 ELSE T="SORRY, BUT YOU CANNOT "+LEFT$ (QM,X2) : IF X2<X1 
THEN T=T+RIGHT$ (QM,X1-X2) + "." : GOTO1560 ELSE T=T+"." : GOTO 

370 5 IF I < 8 AND XI = X2 THEN ON I + 1 GOSUB 1640, 1640, 1640, 1 
820, 510, 1650, 1570, 1630 : GOTO 1560 rFFT Sm 
380 Ml = MID$ (QM , X2 U f 3) : FOR J = TO 32 : IF Ml - LEFT$^0 
(J 0) r 3) THEN 470 ELSE NEXT J : IF Ml = OAK 1 AND U - 1 

390 : I IF N ^D$(N(l)"x2,l)OCHR $ (46) AND "OXI THEN NEXT ELSE M2=M 
Tn<tni1\ 7 31 • IF M20M1 THEN Z=X2.+ 2 : A=A+1 : NEXT X2 ELSE B 
=A : IF 1=10 THEN PRINT YOU SEE NOTHING SPECIAL. " : GOTO90 ELS 

naVlna x - 43 TO 46 • IF Ml = R(X) THEN 490 ELSE NEXT 

4?0 IF 0(4; 3) - n« OR 0(6, 3) ■ -IT THEN IF I = 23 AND Ml = «S 

EL" THEN PRINT "OK" : GOTO 1820 
420 IF I = 32 GOSUB 560 : GOTO 1560 

4 4 4^ \l I Z 35 Th1n\f L^(VA^(22: 2) ) - D = 1 THEN T = "I THI 

NK THERE ARE ORCS NEAR HERE I " : GOTO 1560 ELSE T = "YOU HEAR N 

OTHING UNUSUAL." : GOTO 1560 
450 T = "I DON'T KNOW WHAT YOU WANT." : GOTO 1560 
460 T = "I MUST BE DUMB, I DON'T UNDERSTAND YOU." : GOTO 1560 
470 IF I < 9 THEN 490 ELSE IF J < 33 THEN B = VAL(0(J, 2) ) : IF 

B <> L AND B > THEN 1550 ELSE ELSE J = 29 
480 ON I - 8 GOSUB 900, 1030, 1030, 1030 , 900 , 1330 , 1330 , 1330, 
1330 1490, 1490, 900, 530, 530, 760, 740, 750, 620, 840, 870 

, 880', 540! 540, 560, 600, 900, 1330, 630, 1330, 1320, 1000, 1 

490^F i < 9 THEN ON I + 1 GOSUB 660, 660, 660, 1820, 510, 660, 

1570, 1630, 1000 
500 GOTO 1560 



Spider Mountain 



BASIC Adventures 159 



510 IF 0(3, 3) <> "1" THEN 1550 ELSE PRINT "OK" : IF VAL(0(17, 2 
)) ■ - L THEN T = "THERE'S SOMETHING BURIED HERE !" : 0(17, 2) 
= STR$(L) ELSE T = "THERE'S NOTHIN' HERE!" 
520 RETURN 

530 IF J <> 13 THEN 740 ELSE IF 0(J,3) <> "" THEN T - "ITS BROKE 
N." : RETURN : ELSE IF I = 21 THEN T = "NOTHING HAPPENED." : R 
ETURN : ELSE IF I = 22 AND 0(J,2) = "6" THEN T = "SOMETHING IS 
HAPPENING!!!" : Ul = 1 : RETURN 

540 IF J = 3 OR J = 4 OR J = 6 OR J = 8 OR J = 9 OR J = 11 OR J 
= 12 OR J = 13 OR J = 19 OR J = 27 OR J = 28 THEN ( J , 3) = "- 
3" : GOTO 60 ELSE 730 

550 T = "ITS ALREADY UNLOCKED." : RETURN 

560 IF L = 22 THEN IF U = THEN IF 0(10, 3) « "1" THEN U = 1 : 

GOTO 60 ELSE 1550 ELSE 550 
570 IF L = 26 THEN IF Ul = THEN IF 0(10, 3) = "1" THEN Ul = 1 

: RETURN ELSE 1550 ELSE 550 
580 IF 0(1, 3) = "1" THEN IF 0(0, 3) = "2" THEN 0(0, 3) = "" : 

(0, 2) = STR$(L) : GOTO 60 ELSE 730 
590 IF CL = 1 AND 0(12, 3) = "1" THEN CL = : GOTO 60 
600 IF L = 22 AND U = 1 THEN U = : GOTO 60 
610 GOTO 730 

620 IF VAL(0(22,2)) <> L OR 0(9,3) <> "1" THEN 1000 ELSE PRINT " 
THEY TOOK THE AMBROSIA," : IF RND(10) < 2 THEN PRINT "BUT KILL 
ED YOU ANYWAY." : GOTO 1820 ELSE PRINT "AND RAN OFF." : IN = I 
N - 1: 0(9,2) = "" : 0(9,3) = "" : 0(22,2) = STR$ (RND ( 25 ) ) : R 
ETURN 

630 IF Ml = "YOH" PRINT "EVERYTHING SPINS AROUND AND SUDDENLY... 
• 

YOU'RE DEAD!!" : GOTO 1820 

640 IF Ml = "HOM" AND 0(17, 3) = "1" THEN L = 1 : PRINT "OK 
HOME." : T = "THERE IS A BRIGHT FLASH OF LIGHT..." : GOTO 1560 
650 GOSUB 60 : T = T + " 

" + RIGHT$(QM, XI - X2) + "." : GOTO 1560 

660 IF B <> THEN L = VAL (N (B +3)) : IF 0(1,3) = "1" AND L = 6 
THEN T = "THE BURDENBEAST WON'T GO." : L = LI : RETURN ELSE I 

F L = 22 AND U = THEN L = LI : GOTO 1550 ELSE IF L = 21 AND 

U = THEN L = LI : GOTO 1550 ELSE 740 
670 IF Ul = 1 AND L = 6 AND Ml = "TRA" THEN L = 10 : GOTO 60 
680 IF Ul = 1 AND Ml = "TRA" AND L = 10 THEN L = 6 : RETURN 
690 FOR XI = 1 TO 4 : M2 = MID$(N(2), XI, 1) : IF M2 <> LEFT$ (Ml 

, 1) THEN NEXT XI ELSE : FOR X2 = 43 TO 46 : IF Ml <> R(X2) TH 

EN NEXT X2 ELSE L = VAL(N(X1 +3)) : IF L <> THEN 740 
700 IF M2 <> LEFT$ (Ml , 1) THEN NEXT XI ELSE : FOR X2 = 43 TO 46 

: IF Ml <> R(X2) THEN NEXT X2 ELSE L = VAL(N(X1 +3)) : IF L < 

> THEN 740 
710 IF L = 28 THEN L = 29 : RETURN 
720 IF L = 29 THEN L = 28 : RETURN 

730 T - "SORRY, BUT YOU CAN'T DO THAT." : RETURN 
740 B = : GOTO 60 

750 IF L = 6 AND J = 32 THEN Ul = : GOTO 740 
760 IF 0(4, 3) <> "1" AND 0(6, 3) <> "1" THEN 1000 
770 INPUT "WITH WHAT"; QM : QM = LEFT$(QM, 3) : IF QM = "WEA" TH 
EN IF XC = 1 THEN XC = ELSE T = "ITS NOT LOADED!!" : RETURN 



160 BASIC Adventures 



Spider Mountain 



780 IF QM = "HAN" THEN IF XD > THEN XD = XD - 1 ELSE T - "ITS 
NOT LOADED!" : RETURN SE % 

790 IF J <> 1 THEN 810 ELSE IF 0(J, 3) = 1 THEN Z W 

80 = 0(0, 3) = »-9» : 0(1, 2) = STR$(L) : IF Z = 99 THEN IN = IN 

DES ATTACKED AND 
KILLED YOU INSTANTLY. 

- • GOTO 1820 ELSE 0(22,2) =STR$ (RND ( 29) ) : T = "THE REST, THE CO 
S^T/a r 9 THEn" T* = R "YOlT HIT ONE." : RETURN 

III G I°F T °O( 6 1 B, 3) <> "1" THEN 155. ELSE IF = 4 OR (0 > 5 £0 a < 
>^ 30^THEN W.MH ^ ^ T0 21 = 

860 GOTO 740 „,„ nR q/iq 3) <> "1 

870 IF J <> 12 THEN 840 ELSE IF 0(J, 3) <> 1 OR 0(18, >J 

» THEN 840 ELSE CL = 1 : GOTO 60 

880 IF J = 9 THEN T = "WHEEEEEE ! = . 10 

YOU GOT PLASTERED AND LOST A DAY." : IF CL - 1 THEN 

: RETURN ELSE RETURN 

890 GOTO 730 ; , on . tp C)(l 3) <> "2" AND B <> 

J TITm 3 - 1 »»«» T - VOU .Mi »0T TO E STRENGTH TO 

960 IF J = 2 THEN IF 0(18, 2) - 10 ^^0^3/2) = "6" 

970 IF J = 8 THEN IF 0(13, 2) = M -6 THEN 0(13, i.) 
980 GOSUB 60 : RETURN 

990 IN = IN + 1 , T HAVE m . : RETURN ELSE 
1000 IF 0(J,3) <> 1 THEN "1 IVU nn = $(L) RETURN 

T="OK" : IN = IN - 1 : 0(J,3) - * v\o,*i 

1010 IF 0(5,3) <> "V" THEN 1550 

iiiit'i2ii!'iiSi!"i2U"i2ii! M»: 22,.. »«. 21 

00, 1310 : GOTO 1100 



Spider Mountain 



BASIC Adventures 161 



< 1 THEN T = "IT IS A WELL WORN DOUBLE CARR 



1040 IF VAL(O(0, 3) ) 
YSACK 

IT APPEARS TO HAVE SOMETHING IN IT, 
MAYBE YOU SHOULD GET IT." : RETURN 

1050 PRINT "THEY CONTAIN: "; : FOR I = 6 TO 22 : IF 0(1, 2) = »- 

1" THEN PRINT 0(1, 0)". "; 
1060 NEXT : T = " " : RETURN 

1070 T = "YOU SEE A FLOP-EARED ILL TEMPERED QUADRUPEDAL ANIMAL." 
: RETURN 

1080 T = "IT'S AN OLD TORN SACK." : IF 0(18, 2) = "-8" THEN 0(18 

, 2) = "8" 
1090 RETURN 

1100 T = "YOU CAN SEE NOTHING SPECIAL." : RETURN 

1110 T = "IT'S A SINGLE SHOT CROSSBOW" : IF XC = THEN T = T + 

", UNLOADED." ELSE T = T + " , LOADED." 
1120 RETURN 

1130 IF I = 11 THEN T = "THE RUNES SAY: 

THERE'S SOMETHING MAGIC ABOUT HOME." : RETURN ELSE T = "IT SMELL 

S OF CHAOS, 
AND APPEARS TO BE MADE OF HUMAN SKIN. 
THERE ARE SOME RUNES WRITTEN UPON IT." : RETURN 

1140 T = "IT'S A MULTI-SHOT SPRING LOADED DART SHOOTER, WITH" + 
STR$(XD) + " DARTS." : IF XD = 1 THEN T = LEFT$ (T, LEN (T) - 2) 
+ " . ■ 

1150 RETURN 

1160 IF 0(13, 2) = "-6" THEN T = "THERE'S SOMETHING ELSE HERE TO 
0." : RETURN ELSE T = "YOU SEE" + STR$ (XA) + " QUARRELS AND" + 
STR$ (XB) + " DARTS. " 
1170 RETURN 

1180 IF 0(8, 2) = "-6" THEN T = "THERE APPEARS TO BE SOMETHING B 

EHIND THE BOTTLES." : RETURN ELSE 1100 
1190 T = "THERE ARE A SET OF FIVE KEYS, 
ON A METAL RING." : RETURN 

1200 T = "IT'S AN OLD TORCH. IT'S BURNED DOWN TO 
A MARK THAT SAYS '" + STR$ (LN) + "'TURNS LEFT." : 
1210 T ■ "IT'S A RING OF TELEPORTATION , 
THE INSCRIPTION READS 

'SAYING THE MAGIC WORD, GETS ONE HOME.'" : RETURN 
1220 T = "THERE'S WRITING ON IT." : RETURN 
1230 IF 0(20, 2) = "-17" THEN 0(20, 2) = "17" 

GE !" : RETURN ELSE 1100 
1240 IF I = 11 THEN T = "IT SAYS : 
BRING TREASURES TO TAVERN, 
AND SAY 

SCORE." : RETURN ELSE 1220 
1250 IF I = 11 THEN T = "IT SAYS : 
WATCH FOR MORE RFC ADVENTURES!" : 
1260 T = "THEY ARE A SAVAGE LOOKING 
AND THEY'VE SEEN YOU." : RETURN 

1270 T = "IT'S AN ANCIENT JEWEL ENCRUSTED COFFIN. 

THEN T = T + " 
IS LOOSE !" : 

1280 RETURN 

1290 IF 0(5, 2) = "-25" THEN 
IN 1 HERE !!" : RETURN ELSE 



RETURN 



T = "ITS A MESSA 



RETURN 
BAND. 



ELSE 1220 



, 2)) = - 21 
AND ONE JEWEL 



IF VAL(0(16 



0(16, 2) = "21" 

0(5, 2) = "1" : 
1100 



U = 



"THERE'S SOMETH 



162 BASIC Adventures 



Spider Mountain 



1300 IF I = 11 THEN T = "IT SAYS DANGER -ORC TERRITORY" : RETURN 
ELSE 1220 

1310 IF 0(12, 2) = "-6" THEN 0(12, 2) = "6" : T = "THERE'S A TOR 
CH HERE!" : RETURN ELSE 1100 



38 THEN 1420 

THEN T = "SORRY, BUT THAT'S N 



ii ii 



THEN T = 



" YOU HAVE TA FEED 
= "NOW, TRY TO RIDE 



1320 IF (J = 4 OR J = 6) AND I = 
1330 IF J <> 1 OR VAL(0(1, 3)) < 

OT POSSIBLE." : RETURN 
1340 IF I = 38 THEN IF 0(1, 3) = 

•IM FIRST." : RETURN ELSE 1420 
1350 IF 0(7, 3) = "1" THEN IF I <> 17 THEN 

/LOAD HIM. " : 0(1, 3) = "7" : RETURN 
1360 ON I - 13 GOTO 1370, 1380, 1390, 1400 
1370 T ■ "YOU'RE TOO SLOW, HE GOT AWAY." : RETURN 
1380 T = "THE BURDENBEAST GOT AWAY FROM YOU." : RETURN 
1390 T = "TOUGH LUCK, YOU TRIPPED AND THE BURDENBEAST RAN OFF." 

: RETURN 

1400 IF 0(7, 3) <> "1" THEN T = "TOUGH LUCK. HE THREW YOU OFF." 
: 0(3, 3) = "" : 0(1, 2) = STR$(RND(5)) : RETURN ELSE IF 0(1, 
3) = "7" THEN 0(1, 3) = "1" : 0(1, 2) = "" : GOSUB 60 : RETURN 
ELSE 1370 

1410 GOTO 930 

1420 INPUT "WITH WHAT"; QM : 
LEFT$(QM, 3) <> "CAR" T = 
THE BURDENBEAST GOT AWAY." : 

) = STR$ (RND (5) ) : RETURN 
1430 IF 0(0, 3) = "1" THEN 0(0, 3) = "2" 

ELSE 1000 

1440 QM = LEFT$(QM, 3) : IF QM = "DAR" OR QM = "QUA" THEN IF 0(8 
3) <> "1" AND VAL(0(8, 2)) <> L THEN 1000 ELSE 1450 ELSE 730 



IF J = 4 OR J 
"IT FELL OFF. 
0(1, 3) = "" 



= 6 THEN 1440 ELSE IF 



IN = IN - 1 
IN = IN - 1 



0(1, 2 
GOTO 74 



1450 
EN 
1460 
EN 
XB 
1470 
1480 
1490 



IF J 
XC ■ 
IF J 



= 4 
1 : 
= 6 



AND 0(J, 3) = "1" AND QM = "QUA" 
XA = XA - 1 : GOTO 60 ELSE 1470 
AND 0(J, 3) = "1" AND QM = "DAR" 



THEN IF XA > TH 



THEN 



T = "ITS NOT EMPTY YET." : RETURN ELSE 
: XB = : GOTO 60 ELSE 1480 
T = "WHAT?" : RETURN 
T * "YOU DON'T HAVE ANY." : RETURN 



IF XB > 



IF XD > 
THEN XD 



TH 



ON" 



THEN 1000 ELSE INPUT 
P = LEFT$ ( QM , 2) : IF 
: RETURN 

3) : IF P = "ON" THEN 



"ON OR IN WHAT? 
P <> "IN" AND P 



(I.E 
<> " 



IF "BUR" = Ml THEN 1 



IF 0(J, 3) <> "1 
ON TABLE) "; QM : 
THEN T = "HUH?" 
1500 Ml = MID$ (QM, 4, 

430 ELSE 1000 
1510 IF "CAR" = Ml THEN IF 0(0,3) 
OR J = 19 OR J = 
LSE IF IM>6 THEN T="THE " 
E 0(J,2)="-1" : 0(J,3)="" 
N 

1520 IF "BUR" = Ml THEN T = "YOU GOT KICKED ! 
1530 IF Ml = "QUA" OR Ml = "DAR" THEN QM = Ml 
1540 GOTO 730 

1550 T = "YOU CAN'T DO THAT... YET!" 
1560 PRINT t : T = " " : GOTO 40 

1570 PRINT "YOU HAVE WITH YOU : " ; : IF IN = AND 0(1, 3) <> 1 
" THEN T = "NOTHING." : RETURN 



<> "1" THEN 900 ELSE IF J < 5 
22 THEN T = "SORRY, IT WON'T FIT." : RETURN E 
+ 0(0,0) + " ARE FULL." : RETURN ELS 
: IN=IN-1 : IM=IM+1 : T="OK" : RETUR 

: RETURN 
GOTO 1450 



Spider Mountain 



BASIC Adventures 163 



: IN 
FOR I = 2 TO 2 
XI ■ 2 : NEXT 



1580 PRINT : XI = : IN = : FOR I = 2 TO 22 : IF VAL(0(I, 3)) 

<> 1 THEN 1600 ELSE IF CL = 1 AND I = 12 THEN PRINT "LIT " ; 
1590 PRINT 0(1, 0)". "; : IN = IN + 1 

1600 NEXT : B = VAL(O(0, 3) ) : XI = B : IF B = 1 THEN PRINT 
= IN + 1 : PRINT 0(0, 0)", WHICH CONTAIN: " 

2 : IF 0(1, 2) = "-1" THEN PRINT 0(1, 0)". " 

ELSE NEXT : IF XI <> 2 THEN PRINT "NOTHING!" 
1610 IF 0(1, 3) = "1" THEN PRINT : PRINT "THE "0(1, 0)", WHICH Y 

OU'RE RIDING. "; : IF B = 2 THEN PRINT "AND IS CARRYING THE CA 

RRY-SACK . " ; 
1620 T = "" : RETURN 

1630 IF L = 14 THEN CLS : PRINT CHR$(23) " 
YOU HAVE FALLEN 1000 FEET. 



YOU LANDED ON SHELOB'S WEB. 



YOU ARE DOOMED. 

" : GOTO 1820 ELSE IF J = 23 OR J = 32 OR Ml = "P" THEN T = "OK" 

: RETURN ELSE 730 
1640 T • "WHERE?" : RETURN 
1650 IF L = 25 THEN L = 26 
1660 IF L = 26 THEN L = 25 
1670 GOTO 60 

1680 PRINT "EXAMINING THINGS SOMETIMES HELPS." : RETURN 

1690 PRINT "ROADS USUALLY GO PLACES." : RETURN 

1700 PRINT "MAYBE THE TRAIL GOES SOMEWHERE." : RETURN 

1710 PRINT "BETTER BE CAREFUL, ITS DANGEROUS UP AHEAD." : RETURN 

1720 IF VAL(0(1, 2)) = L THEN PRINT "MAYBE THE BURDENBEAST HASN ' 

T BEEN FED RECENTLY" : RETURN ELSE GOTO 1680 
1730 PRINT "KEEP GOING." : RETURN 

1740 PRINT "ITS SLIPPERY, BUT YOU MIGHT BE ABLE TO CLIMB DOWN." 
: RETURN 

1750 PRINT "YOU HAVE A DIGTOOL, DON'T YOU?" : RETURN 
1760 IF 0(17, 3) <> "1" AND U = THEN PRINT "YOU ARE DOOMED, TH 
ERE IS NO WAY OUT." : RETURN ELSE 1680 



1770 PRINT : 
1780 IF Zl < 
1790 IF Zl > 
1800 IF Zl > 
1810 PRINT " 



IF Zl < 88 PRINT "EXCELLENT,"; 

149 AND Zl > 87 PRINT "WELL DONE, 

150 AND Zl < 200 PRINT "NOT BAD," 
199 PRINT "SO-SO,"; 

FINISHED IN 0NLY"Z1" MOVES. 



1820 PRINTS 960, "PLAY AGAIN 



INPUT QM : IF LEFT$(QM, 1) = "Y 



" THEN RUN ELSE NEW 
1830 IF J = 7 THEN T = "THEY TASTE PRETTY GOOD." : RETURN 
1840 IF J = 30 THEN PRINT "OH NO, YOU'VE JUST BEEN POISONED." 

GOTO 1820 
18 50 T = "CAN'T DO THAT... 
YOU LOSE 3 POINTS ON KARMA !" : RETURN 
1860 RESUME 90 

1870 PRINT CHR$(23)"### RIDER FANTASY CREATIONS ###" 
1880 PRINT TAB (9) "ADVENTURE # 2" 

1890 PRINT : PRINT TAB (3) "SPIDER MOUNTAIN ADVENTURE" 
PRINT TAB (5) "WORLD COPYRIGHT 1979" : PRINT TAB (3) 



DDIL 
N 



PRINT : 
"BY BOB LI 



& TERI LI" : PRINT TAB (6) "ALL RIGHTS RESERVED" : RETUR 



164 BASIC Adventures 



Spider Mountain 



1900 PRINT TAB (12) "WELCOME TO THE SPIDER MOUNTAIN ADVENTURE" 
1910 PRINT " I AM YOUR PSYCHIC 6TH SENSE, WISDOM, YOUR GUIDE 

ON THIS" 

1920 PRINT "ADVENTURE. YOU MAY USE TWO WORD COMMANDS TO FIND CL 
UES AND" 

1930 PRINT "EXECUTE MOVEMENT. SUCH WORDS AS " CHR$(34) "GET CH 

R$(34) ", " CHR$(34) "GO" CHR$(34) ", " CHR$(34) "PUT" CHR$(34 

) ", " CHR$(34) "DROP" CHR$(34) ", " : PRINT CHR$(34) "SCORE" 

CHR$(34) ", " CHR$(34) "INVENTORY" CHR$(34); 
1940 PRINT " AND ABOUT A HUNDRED MORE ARE AVAILABLE TO" : PRINT 

"YOU. " CHR$(34) "HELP" CHR$(34) " WILL GIVE YOU HINTS"; 
1950 PRINT " WHEN YOU ARE STUCK. GOOD LUCK, SIR KNIGHT, ON YOUR 

SPIDER MOUNTAIN QUEST." 
I960 INPUT "PRESS ENTER TO CONTINUE. READY"; A$ : CLS 
1970 INPUT "DO YOU WANT TO RESTORE A PREVIOUS GAME"; A$ : IF LEF 

T$(A$, 1) <> "Y" THEN RETURN 
1980 INPUT "IS THIS DISK OR TAPE (D/T)"; A$ : IF LEFT$(A$, 1) <> 
"T" THEN 2050 „ 
1990 INPUT "IS THE TAPE PLAYER READY"; QM : IF LEFT$(QM, 1) <> 

Y" THEN RETURN 

2000 INPUT#-1, L, CL, LN, IN, U, Ul, IM, ^A, XB, XC, XD s FOR I 
= TO 32 : INPUT#-1, 0(1, 0), 0(1, 1), 0(1, 2), 0(1, 3) : NEX 
T I : RETURN 

2010 RETURN A - ' in 

2020 INPUT "IS THIS DISK OR TAPE (D/T)"; A$ : IF LEFT$(A$, 1) <> 

"T" THEN 2080 
2030 INPUT "IS THE TAPE RECORDER READY"; QM 

2040 IF LEFT$(QM, 1) = "Y" THEN PRINT#-1, L, CL, LN, IN, U, Ul, 
IM, XA, XB, XC, XD : FOR I = TO 32 : PRINT#-1, 0(1, 0), 0(1, 
1), 0(1, 2), 0(1, 3) : NEXT I : T = "FINISHED WITH SAVE." : G 

2050 INPUT "IS THE DISK READY"; AS t IF LEFTS (A$ , 1) <> "Y» THEN 
RET URN 

2060 INPUT "WHAT IS YOUR NAME" ; A$ : OPEN "I", 1, A$ : INPUT* 1, 

L CL, LN, IN, U, Ul, IM, XA, XB, XC, XD : FOR I = TO 32 
2070 INPUT# i, 0(1. 0), 0(1, 1), 0(1, 2), 0(1, 3) : NEXT I : CLO 

20I0 INPUT'S THE DISK READY"; A$ : IF LEFT$ (A$ , 1) <> "Y" THEN 
RET URN 

2090 INPUT "WHAT IS YOUR NAME"; A$ : OPEN "0" , 1 , A$ : PRINT# 1, 

L CL, LN, IN, U, Ul, IM, XA, XB, XC , XD : FOR I = TO 32 
210 'pRINT# 1, CHR$(34); 0(1, ) ; CHR$ ( 34 ) , CHR$ ( 34 ) 0(1, 1); C 
HR$(34), CHR$(34); 0(1, 2); CHR$(34), CHR$(34); 0(1, 3); CHR$ ( 

34) : NEXT I 1CC _ 
2110 T = "FINISHED WITH SAVE" : CLOSE : GOTO 1560 

2120 DATA ,,,,,,,, IN A SMALL CAMP, , WNSE, 5, 3, 2, 2, 2 
, IN THE OUTBACK, ROAD. MOUNTAINS. DESERT TERRAIN, WNES, 2, ,4, 
* 2, 2, 2, ON A DIRT PATH 

2110 DATA CAMP. ROAD. MOUNTAINS, "EW ", 1, 1, 4, 2, 2 

2^40 DATA ON A DIRT ROAD, MOUNTAINS • PATH. DESERT OUTBACK. VILLA 
GE IN THE DISTANCE , NE S , 2 , 7 , 3 , 2 , 5 , IN AN ABANDONED GRAYL 
OCK VILLAGE --j , , 

2150 DATA TAVERN, " N " , 1 , 6 , 4 , , , IN A TAVERN, , W , 1, 5 

III 



er Mountain 



BASIC Adventures 165 



2160 DATA AT THE BASE OF SPIDER MOUNTAIN , ROAD. DESERT, S N 4 
4, 2, 8, 2, IN HELL'S GATE PASS, , NS , 1, 9, 7, , ' 

2170 DATA IN A NARROW AND TREACHEROUS CREVASSE , UNDERBRUSH, E NS 
1 1/ 11, , 12, 8, "IN A VERY, VERY LONG CORRIDOR", , W ,1 
26, , , ' 

2180 DATA BEHIND THE BRUSH, BUSH, " W ", 1, 8, 9, , , AT THE EN 
TRANCE TO A GORGE, IMPASSABLE LANDSLIDE. BOULDERS, " S" 1 
12, 12, 12, 9 

2190 DATA AT AN EARTHEN BARRIER WALL, FIRMLY PACKED DIRT, " N " 

r 8, 13, 15, , 
2200 t)ATA ON THE EDGE OF A CRUMBLING LEDGE, YOUR LIFE 
FLASHING IN FRONT OF YOUR EYES, " S ", 1, 14, 16, , , IN A WIDE 

NING WALKWAY, DIRT WALL 
2210 DATA " SN ", 1, 15, 13, 27, 

2220 DATA IN A COBBLESTONE-FLOORED PASSAGE, UNCROSSABLE CHASM, N 
S , 1, 14, 27, , , IN A LOW CRAWLWAY , VERY LITTLE, "WE ■ 1 
17, 27, 19, ' ' 

2230 DATA AT A POOL OF CLEAR WATER, STALACTITES. STAGLAGMITES . C 
AVE MOSS, EW , 1, 17, 19, 18, , IN A HUGE CAVERN, POOL. BOULD 
ERS 

2240 DATA " WE", 1, 18, 19, 17, 29 

2250 DATA ON A STAIRCASE, , EW ,6, 28, 29, , , IN AN ANCIENT C 

RYPT, STATUES, " N" , 9, 21, 21, , 22, AT THE END OF A NARROW 

PASSAGEWAY, OAK DOOR " 

2260 DATA " N S", 1, 22, 25, , 21, IN AN OPEN ALCOVE, SMOOTH MA 

RBLE WALLS. DIRT FLOOR, S , 8, 25, 23, , 
2270 DATA IN A WELL LIT CORRIDOR, ALCOVE, NS , 6, 23, 25, , I 

N AN INTERSECTION, CORRIDORS IN FOUR DIRECTIONS, NSEW, 6, 24 

22, 26, 28 ' ' 1 

2280 DATA IN A CORRIDOR INCLINING DOWNWARD, INTERSECTION IN THE 

DISTANCE, WE , 6, 25, 10, , 
2290 DATA AT A ' T 1 INTERSECTION, DARKENED CORRIDORS, NSE , 1, 16 

, 15, 17, , AT THE TOP OF A STAIRCASE, "STEPS, DUSTY AND WORN" 

23 ern Entrance,' ew 2 *'i? 9 28,' 19*7"* ° F * STAIRCASE < CAV 

2310 DATA CARRYSACKS, 2, 1, BURDENBEAST, , 1, ROUGH CLOTH BAG, 4 
, 8, DIGTOOL, 4, 12, WEAPON, 4, 11, LEATHER PIECE, 1, -25, HAN 
DWEAPON, 1,-1 ■ r 

23 ^c° A T A B f AS T MUNCHIES ' i» BOX OF ASSORTED QUARRELS AND DA 

RTS, 1, -6, AMBROSIA BOTTLES, 2, 6, KEYS, 1, 18, BONES OF RECE 
NT SPIDER VICTIM, 2, 8 

2330 DATA TORCH, 2, -6, LEVER, 1, -6, * SACK OF GOLD DUCATS *, 1 

# G0Ld*RINgT LL ARMING D0UBLETS *' h 14 ' # JEWEL #, 1, -21, 

23 ?Ln AT ? H ~ 13 ' MATCHES ' Vf -8, LICHEN, 3, 27, NOTE, 1, -17, P 
APER, 1, 6, ORCS, 0, 11 ' ' ' ' 

2350 , DA ^?c FIN V 21 ' CAMPFIRE ' » h SIGN, , 5, BROKEN GLASS, 

' CACTUS^ ^2 , 'tRAP^DOOR^ ' , ' 10 f ^ ' ' WEBS ' ' 16 ' 

2360 DATA GO , ENT, RUN, QUI , DIG, CLI, INV, JUM, DRO, GET, EXA, 
REA, LOO, MOV, CAT, CHA, LEA, RID, PUT, PLA, PIC, PUS PUL S 

HO, OPE, CLO, GIV, BUR, LIG ' ' ' 

2370 DATA DRI , BRE , HIT, UNL, LOC, TAK, LIS, SAY, FEE LOA UNR 

. FOL, STR, EAT, NOR, SOU, EAS, WES ' ' ' ' 



166 BASIC Adventures 



Spider Mountain 



Chapter Ten 

Lost Dutchman's Gold 
by Tcri Li 




BASIC Adventures 167 



10 CLS : CLEAR 1000 : DEFINT A - L, U - Z 
(7), 0(32, 3), R(46) : M = STRING$(63, 
: B = : IN = B : LN = 50 
" " : Ml = T : M2 = T 
20 GOSUB 2090 
30 ON ERROR GOTO 2080 
4 FOR L = B TO 26 : FOR I = B TO 



: DEFSTR M - T : DIM N 
" = ") : POKE 16553, 255 
LM = LN : : XI = B : X2 = B : T = 
QM=T:U=B:U1=B:IM=2 



50 FOR I = B TO 32 

"" : NEXT I 
60 FOR I = B TO 46 
70 L = 1 

80 PRINT CHR$ (28) : 
90 IF L < 15 OR (CL 



READ N(I) 



READ 0(1, 0) , 0(1, 1) , 0(1, 2) 
READ R(I) : NEXT 



NEXT I, L 
0(1, 3) 



CHR$(30) : PRINT : RETURN 
IF LN < 1 THEN CL = 
FOR I = TO 7 : READ N(I) 



NEX 



PRINT : PRINT : PRINT 



PRINT 



PRINT@ 448, : GOSUB 2120 

> AND (0(12, 3) = "1" OR 0(12, 2) = STR$(L 
))) THEN 130 ELSE PRINTS 0, "IT'S TOO DARK TO SEE!!"; CHR$(30) 
: I.F L = 15 THEN IF 0(6,3) <> 1 " AND 0(4,3) <> "1" THEN PRIN 
T "YOU HEAR A STRANGE NOISE!" 
100 GOTO 340 

110 T - "OK" : RETURN 
120 B = 1 : PRINT " YOU SEE : 
130 IF CL = 1 THEN LN = LN - 1 
140 RESTORE : FOR LI = TO L 

T I, LI : LI = L 
150 B = : PRINT@ 0, CHR$(30) 
PRINT 

160 PRINTS 64, "YOU ARE "N(0) M . M ; : FOR J = TO 32 : IF VAL(0(J 

, 2)) <> L THEN 230 ELSE IF B = GOSUB 120 
170 IF 0(J, 3) = "-7" OR 0(J, 3) = "-2" THEN PRINT "BURNED "; 
180 IF J = 1 THEN IF VAL(0(1, 2) ) = L THEN IF 0(1, 3) - "" THEN 

PRINT "UNTIED "; : ELSE IF 0(1, 3) = "-9" THEN PRINT "DEAD "; 

190 IF 0(J, 3) = "~3" THEN PRINT "SMASHED "; 

200 IF L = 26 AND J = 32 THEN IF Ul = THEN PRINT "LOCKED "; : 

ELSE PRINT "UNLOCKED "; 
210 IF CL = 1 AND J = 12 THEN PRINT "LIT "; 
220 PRINT 0(J, 0) ". "; 
230 NEXT J 

240 IF Ul = 1 AND L = 1 THEN PRINT "OPEN TRAP DOOR. 
250 IF N(l) = THEN PRINT : GOTO 310 ELSE IF B = THEN GOSUB 
120 

260 IF L = 16 THEN IF U = THEN PRINT "LOCKED "; : ELSE PRINT " 
UNLOCKED "; 

270 IF L = 17 THEN IF U = 1 THEN PRINT "UNLOCKED "; : ELSE PRINT 
"BLOCKED "; 

280 PRINT N (1) ; " . " 

290 IF L = 17 AND U = THEN N(2) = 
300 IF L = 16 AND U = 1 THEN N(2) = 
310 PRINT : IF N(2) = " " THEN 340 
320 PRINT "OBVIOUS EXITS ARE : "; : 
2), I, 1) : IF P = "N " THEN PRINT 



n it 

lion 



+ RIGHT$(N(2) , 3) 
+ RIGHT$ (N(2) , 3) 



FOR I = 1 TO 4 : P = MID$ (N ( 



'NORTH 



ELSE IF P = 



'E" THEN PRINT "EAST "; ELSE IF 



EN PRINT "SOUTH "; ELSE IF P = 
P = "W" THEN PRINT "WEST "; 
330 NEXT : PRINT 
340 B = : PRINT M 

350 IF L = 9 AND 0(22, 2) = "11" THEN PRINTS 960, "THAR'S NOISE 
UP AHEAD - - SOUNDS LIKE INJUNS." 



TH 



168 BASIC Adventures Lost Dutchman's Gold 



360 IF L = 9 AND 0(22, 2) = "" THEN 0(22, 2) = "11" 

370 PRINT@ 960, " WHAT DO YOU WANT TO DO NOW"; : INPUT QM 

380 IF LN < 10 AND CL = 1 THEN PRINT "YOU 1 RE RUNNIN 1 LOW ON KERO 

SENE • " _ 
390 IF QM = "SAVE" OR QM = "SAVE GAME" THEN INPUT "ARE YOU SURE 

; QM : IF LEFT$ (QM , 1) <> "Y" THEN 1630 ELSE 2270 
400 IF QM <> "SCORE" THEN 450 

410 IF L <> 6 THEN T = "YOU CAN'T, YOU'RE IN THE WRONG LOCATION 
i» : GOTO 1630 : ELSE Z = : FOR I = 14 TO 17 : IF 0(1, 2) - 
" 6" THEN Z = Z + 1 

430 PRINT "YOU HAVE" Z "TREAS URES , TOTALING" (Z/4) * 100"%" 
440 IF Z = 4 THEN PRINT "YOU MADE IT!!!" : FOR I = 1 TO 500 : NE 
XT • FOR I = 1 TO 100 : PRINT@ RND(1023), "YOU MADE IT !!!!" : 
NEXT : GOTO 2050 : ELSE T = "YOU MISSED SOME OF THE TREASURE. 

" : GOTO1630 tA ■ , vv „ . „ _ 

450 IF CL = AND L = 15 AND 0(6, 3) <> "1" AND 0(4, 3) <> "1 T 

HEN PRINT "OH NO! 
YOU'VE BEEN BITTEN BY A RATTLESNAKE.. 

YOU'RE DEAD." : GOTO 2050 : i- ' 

460 IF L = 17 AND U = 1 THEN IF RND ( 9 ) < 2 THEN PRINT " ! ! ! CA 

VE-IN ! ! ! 
THE IRON DOOR IS BLOCKED, 
YOU CAN'T GET OUT ! !" : U = 

470 IF QM = "HELP" THEN X = VAL(N(3)) : ON X GOSUB 1890, 1900, 1 

910, 1920, 1930, 1940, 1950, 1960 : GOTO 90 
480 XI = LEN (QM) : IF XI < 3 THEN T = "WHAT?" : GOTO 1630 : : ELSE 
FOR X2 = 3 TO XI : Ml = MID$ (QM, X2, 1) : IF Ml <> CHR$(32) T 

490 E P = E LEf£$(QM?3)I IF X20X1 AND X2 + 3>X1 THEN 580 ELSE FOR I = 
TO 42: IF POR(I) THEN NEXT: IF Xl=X2 THEN T="WHAT?" : GOTO 
1630 ELSE T="SORRY, BUT YOU CANNOT "+LEFT$ (QM,X2) : IF X2<X1 
THEN T=T+RIGHT$(QM,X1-X2)+"." : GOTO 1630 ELSE T=T+"." : GOTO 

500 6 IF I < 8 AND XI = X2 THEN ON I + I GOSUB 1720, 1720, 1720, 2 

050 630. 1730, 1640, 1710 : GOTO 1630 
RiS mi - m n OM X2 +1 3) : FOR J = TO 32 : IF Ml = LEFT$ (0 

(J? 0), 3) $ THEN 590 ELSE NEXT J : IF Ml - "IRO" THEN 550 ELSE 

520 F IF N(1)<>"" N Th1S Z-l : A=Z : X1=LEN(N(1)) : FOR X2 « 5 TO XI 
: IF MID$(N(l),X2,l)OCHR$(46) AND X20X1 THEN NEXT ELSE M = 
TnSfwm Z 3) • IF M20M1 THEN Z = X2+2 : A=A+1 : NEXT X2 ELSE B 
=A:IF 1=10 THEN PRINT "YOU SEE NOTHING SPECIAL.": GOTO 140 EL 
SE 590 

530 FOR X = 43 TO 46 : IF Ml = R(X) THEN 610 ELSE NEXT 

540 IF 0(4, 3) = "1" OR 0(6, 3) = "1" THEN IF I = 23 AND Ml = "S 

EL" THEN PRINT "OK" : GOTO 2050 
550 IF I = 32 GOSUB 690 : GOTO 1630 
560 IF I = 33 GOSUB 730 : GOTO 1630 
570 T = "I DON'T KNOW WHAT YOU WANT." : GOTO 1630 
580 T = "I MUST BE DUMB, I DON'T UNDERSTAND YOU." : GOTO 1630 
590 IF I < 9 THEN 610 ELSE IF J < 33 THEN B = VAL(0(J, 2)) : IF 

B <> L AND B > THEN 1620 ELSE ELSE J = 29 



Lost Dutchman's Gold 



BASIC Adventures 169 



600 ON I - 8 GOSUB 1030, 1140, 1140, 1140, 1030, 1440, 1440, 144 
QQfl ,a'** lb ln' 1550 ' 1030 ' 650 ' 650 ' 900 ' 890 ' 890, 770, 960 

0! ii00: i5 6 5 7 0:'2 6 7 60 ' 690 ' 730 ' i030 ' ?60 ' 780 ' i44 ^ i45 -? 

61 1640 r I 17lS # T ?09 ON 1 + 1 G0SUB 800 ' 800 ' 800 ' 2050 ' 630 ' 800 ' 
620 GOTO 1630 

630 IF 0(3,3) <>"1" THEN 1620 ELSE PRINT"OK" : FOR I = 13 TO 17 \ 
IF VAL(0(I,2))=-L THEN T=" - - EUREKA! WE STRUCK GOLD ?■? ? " 

*u r L?i I ' 2)=STR$(L) ELSE NEXT : T= M DAG NAB IT! THERE'S NOTHIN* 
HERE ! 

640 RETURN 

65 5 MEN < o?^ T ?f N .?!- B f, L f E " L= " THEN 0(23,2)=»15" ELSE IF L=l 
5 THEN 0(23,2)=»16" ELSE IF L=16 AND U=l THEN ( 23 . 2) =" 1 7" ptq 

lil**?".^ 0(23,2)=»19» ELSE IF L=19 THEN ( 23 , 2) =»23» : 
660 GOTO 110 

67 - \l naV °?, J * 4 0R J = 6 OR J = 8 OR J = 9 OR J = 11 OR J 
- 12 OR J = 13 OR j = 19 OR J = 27 OR J = 28 THEN ( J , 3) = »- 
3" : GOTO 110 : ELSE 880 ' ' 

680 T = "ITS ALREADY UNLOCKED." : RETURN 

690 IF L * 16 THEN IF U = THEN IF 0(10, 3) = "1" THEN U = 1 . 

GOTO 110 : ELSE 1620 : ELSE 680 ° 1 S 

700 IF L = 26 THEN IF Ul = THEN IF 0(10, 3) = "1" THEN Ul - 1 

: RETURN : ELSE 1620 : ELSE 680 " 1 

710 IF 0(1, 3) = "1" THEN IF 0(0, 3) = "2" THEN 0(0 3) = . n 

(0, 2) = STR$(L) : GOTO 110 : ELSE 880 ( ' ' ' ° 

nil 11 ?r L = 1 AND ° (12 ' 3) = T HEN CL = : GOTO 110 

nil 11 (L = 16 ° R L = 17) AND U = 1 THEN U = : GOTO 110 
740 IF L = 26 AND Ul = 1 THEN Ul = : GOTO 110 
750 GOTO 880 

77A ?p = r"^ U ^ AN HEAR NOTHING SPECIAL." : RETURN 

THE FIRE WATER ^ ° ^ ^ ^ PR ™ T " THEY T00K 

AND ^J*™-:^™- 1:0(9, 2) = "" :0 (9, 3)="": 0(22 

^URKe\^^\ = GOTO° H ; , 630 = " S0RRY ' Y0U ' RE IN THE WR0NG VENTURE. 
790 GOSUB 110 : T = T + " 

5 + RIGHT$(QM, XI - X2) + "." : GOTO 1630 

800 IF B <> THEN L = VAL (N (B + 3)) : IF 0(1 3) - 1 amh n 
1 OR L = 6 OR L = 15) THEN T = "THE MULE WON ^T GO " ■ L - LI i 
RETURN ELSE IF L = 17 AND U = thru r - ti ' L " L1 1 

IF LI = ?6 ANin r — i * M n ,,, * EN L L1 : G0T0 1620 EL SE 
IF LI 26 AND L - 1 AND Ul = THEN L = LI : GOTO 1620 ELSE 8 

810 IF Ul = 1 AND L = 1 THEN L = 26 : GOTO 110 

820 IF Ul = 1 AND Ml = "TRA" AND L = 26 THEN L "m 1 • RFT11RN 

83 EN F N E R XT X1 xI ELSE FOR xTM ^ ^ ' ' 1 : *F M2<>LEFT$^Ml^l ) TH 

eLb e &sjss4?j : 2 r F ii>i\r^sii mior(x2) then next x2 

!fS II 1 = 23 THEN T = " ITS T0 ° SLIPPERY." : RETURN 
850 IF L = 25 THEN L = 26 : RETURN RETURN 

860 IF L = 26 THEN L = 25 : RETURN 

87 f RETURN ^ L = 23 : T = " W0W ' ALMOST SLIPPED AND FELL." 



170 BASIC Adventures 



Lost Dutchman's Gold 



880 T = "SORRY, BUT YOU CAN'T DO THAT." : RETURN 

890 B = : GOTO 110 

900 IF 0(4, 3) <> "1" AND 0(6, 3) <> "1" THEN 1090 ELSE IF J <> 

1 THEN 930 ELSE IF ( J , 3) = "1" THEN Z = 99 ELSE Z = 

910 0(J, 3) = "-9" : 0(1, 2) = STR$(L) 

920 IF Z = 99 THEN IN = IN - 1 

930 IF J = 22 THEN PRINT "YOU HIT ONE OF 1 UM. 

BUT THE REST KILLED YOU." : GOTO 2050 

940 IF J = 9 THEN T = "YOU HIT ONE." : RETURN 

950 GOTO 110 

960 IF 0(18, 3) <> "1" THEN 1620 ELSE IF J = 4 OR (J > 5 AND J < 
11) OR (J > 14 AND J < 18) OR J « 22 OR J = 25 OR J = 29 OR J 
> 30 THEN 880 ELSE 0(J, 3) = "-7" : 0(J, 2) = STR$(L) 

970 IF 0(0, 3) ■ "-7" THEN 0(0, 2) = STR$ (L) : FOR J = 5 TO 21 : 
IF 0(J, 2) = "-1" THEN 0(J, 3) = "-7" : NEXT : ELSE NEXT 

980 GOTO 890 

990 IF J <> 12 THEN 960 ELSE IF 0(J, 3) <> "1" OR 0(18, 3) <> "1 

" THEN 960 ELSE CL = 1 : GOTO 110 
1000 IF J = 13 THEN PRINT "YECH ! 
ITS KEROSENE. 

YOU JUST POISONED YOURSELF." : GOTO 2050 
1010 IF J = 9 THEN T = "WHEEEEEE! 

YOU GOT PLASTERED AND LOST A DAY." : IF CL = 1 THEN LN = LN - lid 

z RETURN : ELSE RETURN 
1020 GOTO 880 

1030 IF J < 33 THEN B = VAL(0(J, 2) ) : IF 0(J, 3) <> "2" AND B < 
> L AND B <> - 1 THEN IF J < 22 THEN 1620 ELSE T = "IT'S NOT H 
ERE." .: RETURN 

i040 IF J > 21 OR J = 1 THEN T = "? JUST WHO DO YOU THINK YOU AR 

E, PAUL BUN YON? 
YOU'RE NOT STRONG ENOUGH." : RETURN 

1050 IF 0(J, 3) = "-7" THEN T = "ITS BURNED UP AND RUINED." : RE 
TURN 

1060 IF IN>4 THEN T="YOU CAN'T, YOUR HANDS ARE FULL." : RETURN E 
LSE IF 0(J,3)= n l" THEN PRINT"YOU ALREADY HAVE IT!" : RETURN EL 
SE IF VAL(0(J,1) ) <>0 OR 1=16 THEN IN=IN+1 : IF 0(J,2)="-1" THE 
N IM=IM-1 : 0(J,2)="" : 0(J,3)="1" ELSE 0(J,3)="1" : 0(J,2)="" 

1070 IF J<>9 AND JOll AND J<>2 THEN 110 ELSE IF J = 9 THEN IF 0(8 
,2)="-6" THEN 0(8,2)="6" ELSE RETURN ELSE IF J=ll THEN IF 0(12 
,2)="-8" THEN 0(12,2)="8" ELSE RETURN ELSE IF J=2 THEN IF 0(18 
,2)="-14" THEN 0(18,2)="14" 

1080 RETURN 

1090 IF 0(J, 3) <> "l" THEN T ■ "YOU DON'T HAVE IT !" : RETURN : 
ELSE T m "OK" : IN = IN - 1 : ( J , 3) = " " : ( J , 2) = STR$ (L 
) : RETURN 
1100 IF 0(5, 3) <> "1" THEN 1620 
1110 IF L = 7 THEN L = 8 : GOTO 110 
1120 IF L = 12 THEN L = 13 : GOTO 110 
1130 GOTO 110 

1140 GOSUB 110 : ON J + 1 GOTO 1150, 1180, 1190, 1210, 1220, 123 
0, 1240, 1210, 1210, 1250, 1260, 1270, 1280, 1290, 1210, 1210, 
1210, 1210, 1210, 1310, 1320, 1330, 1340, 1350, 1360, 1370, 1 
210, 1380, 1210, 1210, 1210, 1390, 1210 



Lost Dutchman's Gold 



BASIC Adventures 171 



1150 IF VAL(O(0, 3)) < 1 THEN T = "THEY ARE AN OLD PAIR OF LEATH 
ER SADDLEBAGS. iH 
THEY APPEAR TO HAVE SOMETHING IN THEM, 
MAYBE YOU SHOULD GET'UM." : RETURN 

1160 PRINT "THEY CONTAIN "; : FOR I = 6 TO 22 : IF 0(1, 2) = 

" THEN PRINT 0(1, 0)". »; 
1170 NEXT : T = "" : RETURN 

1180 T = "YOU SEE AN OLD, WEARY GREY MULE." : RETURN 

1190 T = "IT'S AN OLD TORN SACK." : IF 0(18, 2) = "-14" THEN 0(1 

8, 2) = "14" K 
1200 RETURN 

1210 T = "YOU CAN SEE NOTHING SPECIAL." : RETURN 
1220 T - "IT'S AN OLD WINCHESTER SINGLE-SHOT." : RETURN 
1230 T = "IT APPEARS TO BE A MAP TO THE LOST DUTCHMAN MINE, 
THERE'S A DRAWING OF SOME BOULDERS." : RETURN 

1240 T = "NOTHING SPECIAL, JUST A LOADED SIX-SHOOTER." : RETURN 

1250 IF 0(8, 2) - "-6" THEN T = "THERE APPEARS TO BE SOMETHING B 

EHIND THE BOTTLES." : 0(8, 2) = "6" : RETURN : ELSE 1210 
1260 T = "THERE ARE THREE KEYS, 

TIED TOGETHER WITH A LEATHER STRAP." : RETURN 

1270 IF 0(12, 2) = "-8" THEN T = "IT LOOKS LIKE THERE'S GLASS UN 

DER 'UM." : 0(12, 2) = "8" : RETURN : ELSE 1210 
1280 T = "ITS AN OLD KEROSENE LANTERN. THE KEROSENE LEVEL 
IS BESIDE A MARK THAT SAYS »" + STR$ (LN) + "'TURNS LEFT." : RETU 
RN 

1290 IF I = 11 THEN T = "IT SAYS 'KEROSENE'." : RETURN 
1300 T = "THERE'S WRITING ON IT." : RETURN 

1310 IF 0(20, 2) = "-17" THEN 0(20, 2) = "17" : T = "ITS A MESSA 

GE !" : RETURN : ELSE 1210 
1320 IF I = 11 THEN T = "IT SAYS : 
BRING TREASURES TO SALOON, 
AND SAY 

SCORE." : RETURN : ELSE 1300" 
1330 IF I = 11 THEN T = "IT SAYS : 

WATCH FOR OTHER RIDER FANTASY CREATIONS ADVENTURES'" • RETURN 
ELSE 1300 

1340 T = "THEY ARE A SAVAGE LOOKING BAND. 
AND THEY'VE SEEN YOU." : RETURN 

1350 T - "ITS JUST AN OLD EMPTY ORE CART." : RETURN 

1360 IF 0(5, 2) = "-25" THEN 0(5, 2) = "1" : T = "THERE'S SOMETH 

IN' HERE «!" : RETURN : ELSE 1210 
1370 IF I = 11 THEN T = "IT SAYS : 
WELCOME TO 

FRONTIERTOWN. " : RETURN : ELSE 1300 

1380 IF 0(10, 2) = "-6" THEN 0(10, 2) = "6" : T = "THERE'S A SET 

OF KEYS THERE!" : RETURN : ELSE 1210 
1390 B = RND (3) : ON B GOTO 1400, 1410, 1420 * 
1400 T = "ITS A BARREL CACTUS." : RETURN 
1410 T = "ITS A CHOLLA CACTUS." : RETURN 
1420 T = "ITS A SAGUARO CACTUS." : RETURN 
1430 IF J = 4 AND I = 38 THEN 1520 

1440 IF J <> 1 OR VAL(0(1, 3)) < 0T = "SORRY, BUT THAT'S NOT POS 
SIBLE." : RETURN 



172 BASIC Adventures 



Lost Dutchman's Gold 



1450 IF I = 38 THEN IF 0(1, 3) = "" THEN T = "TENDERFOOT! YOU HA 

VE'TA LEAD ' IM FIRST." : RETURN : ELSE 1520 
1460 IF 0(1, 3) = "1" THEN 1090 ELSE IF 0(7, 3) = "1" THEN IF I 

<> 16T - "TRY LEAD." : RETURN 
1470 ON I - 13 GOTO 1480, 1490, 1500, 1510 
1480 T = "YOU'RE TOO SLOW, HE GOT AWAY." : RETURN 
1490 T = "THE MULE GOT AWAY FROM YOU." : RETURN 

1500 IF 0(7,3) <>"1" THEN T="TOUGB LUCK, YOU TRIPPED AND THE MULE 
RAN OFF." : 0(1,3)="" : ( 1 , 2) =STR$ (L) : RETURN ELSE IF 0(1,3 
)="" THEN 1060 ELSE 1090 
1510 T = "THE MULE BUCKED YOU OFF." : RETURN 

1520 INPUT "WITH WHAT"; QM : IF J = 4 THEN 1540 ELSE IF LEFT$ (QM 

3) <> "SAD" THEN T = "IT FELL OFF. 
THE MULE GOT AWAY." : 0(1, 3) = "" : IN = IN - 1 : RETURN 
1530 IF 0(0, 3) = "1" THEN 0(0, 3) = "2" : IN = IN - 1 : GOTO 89 

1540 : iF L LEFT$ 9 (QM, 3) = "BUL" THEN IF 0(8, 3) <> "1" OR 0(4, 3) < 

> "1" THEN 1090 ELSE 110 ELSE 880 
1550 IF 0(J, 3) <> "1" THEN 1090 ELSE INPUT "ON OR IN WHAT? (I.E 

.ON TABLE)"; QM : P = LEFT$(QM, 2) : IF P <> "IN" AND P <> "0 

N" THEN T = "HUH?" : RETURN 
1560 Ml = MID$ (QM, 4, 3) 

1570 IF P = "ON" THEN IF "MUL" = Ml THEN 1530 : ELSE IF J - 13 T 
HEN IF LM = THEN T = "ITS EMPTY." : RETURN : ELSE LM = : G 

158riF "SAD"=Ml E THEN IF J<5 OR J = 19 OR J = 22 THEN T="SORRY, IT W 
ON'T FIT." : RETURN ELSE IF IM>4 THEN T="THE " + 0(0, 0) + A 
RE FULL." : RETURN ELSE 0(J,2)="-1" : 0<J.3)«" S IN-IN-l : IM 
=IM+1 : T="OK" : RETURN 

1590 IF "MUL" = Ml THEN T = "YOU GOT KICKED !" : RETURN 
600 IF "LAN" = Ml THEN IF 0(13, 3) = "1" AND 0(12 ,3) = "1 ^ 
N IF LM = 50 THEN LN = LN + 50 : LM = : GOTO 110 : ELSE T - 
"ITS EMPTY!" : RETURN : ELSE 1090 

1610 GOTO 880 

1620 T - "YOU CAN'T DO THAT... YET!" 

1630 PRINT T : T = "" : GOTO 90 . <. 

1640 PRINT "YOU HAVE WITH YOU : "; : IF IN = AND 0(1, 3) <> 1 

" THFN T ■ "NOTHING." : RETURN 
165iT- VAL(O( , 3)) : XI - B : IF B ., 1 THEN PRINT: PRMTOJ. 
0V WHICH CONTAIN; "; : FOR I = 1 TO 22 : IF 0(1, 2) - A 

'then'print 0(1, 0)". "; i xi « > : next : ELSE NEXT : IF XI < 

1660Yf H O(1^ : PRINT "THE "0(1, 0)", WHICH Y 

oS'RE LEADING. "; : IF B = 2 THEN PRINT "AND IS CARRYING THE S 

1670 D PRINT S ' M X1 = : FOR I = 2 TO 22 : IF VAL(0(I, 3) ) < 1 THEN 

1690 ELSE IF CL = 1 AND I = 12 THEN PRINT "LIT "; 
1680 PRINT 0(1, 0) ". "J 
1690 NEXT 

1700 T = " " : RETURN 

1710 if L = 19 THEN CLS : PRINT CBR$(23)" 
YOU HAVE FALLEN 100 FEET. 

YOU LANDED ON ROCKS. 



Lost Dutchman's Gold 



BASIC Adventures 173 



YOU ARE DEAD. 

" : GOTO 2050 ELSE IF J = 23 OR J = 32 OR Ml = "P" THEN T = "n** 

: RETURN : ELSE 880 
1720 T = "WHERE?" : RETURN 
1730 IF L = 25 THEN L = 26 
1740 IF L = 26 THEN L = 25 
1750 GOTO 110 

1760 DATA ,,,,,,,, IN A MINER'S SHACK, WINDOW. DOOR, l 
3, 3, , , IN A DESERT, ROAD. MOUNTAINS. DESERT, WNES, 2. 4 o 

, 2, 2, ON DIRT PATH ' * 

1770 DATA MINER'S SHACK. ROAD. MOUNTAINS, " W ", 5, 1, 4, 2 2 
1780 DATA ON A DIRT ROAD, MOUNTAINS. PATH. DESERT. TOWN IN THE D 

ISTANCE, NE S, 2, 7, 3, 2, 5, IN A GHOST TOWN, SALOON, " N w 
1/ 6, 4, , , IN A SALOON, , W , 1, 5, , , ' 
1790 DATA AT THE BASE OF THE SUPERSTITION MOUNTAINS, ROAD. DESER 

T, S N , 4, 4, 2, 2, 2, AT THE BASE OF WEAVER'S NEEDLE, . NS 

, If 9, 7, , ' 
1800 DATA IN A NARROW DEFILE, BUSHES. CAVES, " NS" , 1, 11 10 

12, 8, IN A SMALL CAVE, , E , 1, 9, , , , BEHIND A BUSH, BUS 

H / W , 1, 9, , , 
1810 DATA IN A BOX CANYON, BUSHES. TREES. BOULDERS, " S" 4 1 

2, 12, 12, 9 ' ' • 

1820 DATA IN FRONT OF A PARTIALLY HIDDEN MINE, MINE SHAFT, ESNW 
8, 14, 12, 12, 12, IN THE ENTRANCE OF A DIMLY LIT MINE, MINE* 
SHAFT 

1830 DATA EW , 1, 15, 13, , , IN THE MINE, DARK TUNNEL, EW , 6 
/ 16, 14, , 

1840 DATA AT THE END OF THE TUNNEL, IRON DOOR, " W ", 1, 17, 15 
, , , IN A LARGE CHAMBER, IRON DOOR, WNES, 1, 16, 19. 18, 20 

1850 DATA IN A MAZE OF TUNNELS, , NSEW, 6, 18, 18, 18, 18, IN FR 
ONT OF A PIT, DARK HOLE, " S ", 7, 23, 17, , 

1860 DATA AT A TUNNEL INTERSECTION, , " SNW", 6, , 22. 17 21 I 
N A DEAD END TUNNEL, , E , 8, 20, , , , IN A BLOCKED TUNNEL, 
, N , 8, 20, , , 

1870 DATA AT THE BOTTOM OF A SHAFT, WALL, S , 8, 24 

18 TNMNP? A ulI^ E i' '« N ? ' 6 ' 23 ' 25 ' ' ' AT THE ^ND OF THE 
TUNNEL, LADDER, » N ", 6, 26, 24, , , AT THE TOP OF LADDER, , 

r 6, 1, 25, , 
1890 PRINT "TRY EXAMINING THINGS." : RETURN 
1900 PRINT "ROADS USUALLY GO PLACES." : RETURN 
1910 PRINT "MAYBE THE TRAIL GOES SOMEWHERE." : RETURN 
1920 IF 0(5, 3) <> "1" THEN PRINT "DO YOU HAVE THE MAP?" • RETUR 

N : ELSE PRINT "TRY 'FOLLOW'." : RETURN 
1930 IF VAL(0(1, 2)) = L THEN PRINT "MAYBE THE MULE IS HUNGRY." 

: RETURN : ELSE GOTO 1890 
1940 PRINT "KEEP GOING." : RETURN 

1950 PRINT "ITS SLIPPERY, BUT YOU MIGHT BE ABLE TO CLIMB DOWN." 
• RET URN 

1960 PRINT "THIS IS A MINE, YOU KNOW." : RETURN 

1970 DATA SADDLEBAGS, 2, 1, MULE, , 3, BURLAP SACK, 4, 14, SHOVE 
L, 4, 1, RIFLE, 4, 1, MAP, 1, -25, GUN, 1, -1, CARROTS 1 -1 

1980 DATA BOX OF RIFLE BULLETS, 1, -6, WHISKEY BOTTLES, 2, 6, KE 
YS, 1, -6, PILE OF BONES (MINE), 2, 8 

1990 DATA LANTERN, 2, -8, JAR OF LIQUID, 1, -11, * SPANISH COINS 
*, 1, -10, * TOURQUOISE *, 1, -23, # SILVER #, 1, -21 



174 BASIC Adventures 



Lost Dutchman's Gold 



2000 DATA # GOLD #, 1, -22, MATCHES, 1, -14, CRATES, 3, 17, NOTE 
. 1, -17, PAPER, 1, 6, INDIANS, 0, 11 „ 

201 DATA ORE CART, , 14, BED, , 1, SIGN, , 5, BROKEN GLASS, , 6 
, TABLES, , 6, CHAIRS, , 6, ROCKS, , 10, WOODEN RAILS, , 15, C 
ACTUS, , 2, TRAP DOOR, , 26 

2020 REM *** COMMAND TABLE *** 

2030 DATA GO , ENT, RUN, QUI, DIG, CLI , INV, J UM, DRO , GE T , EXa, 
REA, LOO, MOV, CAT, CHA, LEA, RID, PUT, PLA, PlC, PUS, PUL, S 

HO OPE. CLO. GIV, BUR, LIG, DRI , BRE 
2040 'DATA 'HIT? 'uNL.'lOC, 'tMC.'lIS, SAY , FEE, LOA, UNT, FOL, POU, 

EAT, NOR, SOU, EAS , WES 
2050 PRINT© 960, "DO YOU WANT TO PLAY ANOTHER GAME"; : INPUT QM 

• IF LEFTS (QM, 1) = "Y" THEN RUN ELSE NEW 
2060 IF J = 7 THEN T = "THEY TASTE PRETTY GOOD." : RETURN 
2070 T = "CAN'T DO THAT... 
WIERDO!" : RETURN 

2080 RESUME 140 , ^ 

2090 PRINT CHR$(23)"### RIDER FANTASY CREATIONS ### 

2100 PRINT TAB (10) "ADVENTURE #1" 

2110 PRINT TAB (3) "THE LOST DUTCHMAN'S GOLD." : PRINT : PRINT TAB 
(5) "WORLD COPYRIGHT 1979" : PRINT TAB(10) "BY TERI LI" : PR 
INT TAB (6) "ALL RIGHTS RESERVED" : RETURN 

2120 PRINT " WELCOME TO THE SEARCH FOR THE LOST DUTCHMAN'S 

2130 L PRINT "I AM THE GHOST OF BACKPACK SAM - YOUR GUIDE ON THI 
S ADVENTURE."; 



Lost Dutchman's Gold 



BASIC Adventures 175 



2140 PRINT "YOU MAY USE TWO WORD COMMANDS TO FIND CLUES AND EXEC 
UTE MOVEMENT"; 

2150 PRINT "SUCH WORDS AS " CHR$(34) "GET" CHR$(34) ", " CHR$(34 
) "GO" CHR$(34) " , " CHR$(34) "PUT" CHR$(34) ", " CHR$(34) "DR 
OP" CHR$(34) ", " CHR$(34) "SCORE" CHR$(34) ", " CHR$(34) "INV 
ENTORY" CHR$(34) 

2160 PRINT "AND ABOUT A HUNDRED MORE ARE AVAILABLE TO YOU. " CHR 

$(34) "HELP" CHR$(34) " WILL GIVE YOU HINTS WHEN YOU ARE STUCK 
n 

• 

2170 PRINT "GOOD LUCK AND I HOPE YOU DON'T END UP A GHOST LIKE M 
E." 

2180 INPUT " PRESS ENTER TO CONTINUE. READY"; A$ : CLS 

2190 INPUT "DO YOU WANT TO RESTORE A PREVIOUS GAME"; A$ : IF LEF 
T$(A$, 1) <> "Y" THEN RETURN ELSE INPUT "IS THIS TAPE OR DISK" 
; QM 

2200 IF LEFT$ (QM, 1) = "T" THEN INPUT "IS THE TAPE PLAYER READY" 
; QM : ELSE 2220 

2210 IF LEFT$(QM, 1) <> "Y" THEN RETURN ELSE INPUT#-1, L, CL, LN 
, IN, LM, U, Ul, IM : FOR I = TO 32 : INPUT#-1, 0(1, 0), 0(1 
, 1), 0(1, 2), 0(1, 3) : NEXT I : RETURN 

2220 IF LEFT$ (QM, 1) = "D" THEN INPUT "IS THE DISK READY"; QM : 
ELSE 2260 

2230 IF LEFT$ (QM, 1) <> "Y" THEN RETURN 

2240 INPUT "WHAT IS YOUR NAME"; A$ : OPEN "I", 1, A$ + "/DUT" 
2250 INPUT# 1, L, CL, LN , IN, LM, U, Ul, IM : FOR I = TO 32 : 
INPUT# 1, 0(1, 1), 0(1, 2), 0(1, 3) : NEXT I : CLOSE : RETURN 

2260 RETURN 

2270 INPUT "IS THIS TAPE OR DISK"; QM 

2280 IF LEFT$ (QM, 1) = "T" THEN INPUT "IS THE TAPE RECORDER READ 

Y"; QM : ELSE 2300 
2290 IF LEFT$ (QM, 1) = "Y" THEN PRINT#-1, L, CL, LN , IN, LM, U, 

Ul, IM : FOR I = TO 32 : PRINT#-1, 0(1, 0), 0(1, 1), 0(1, 2) 

, 0(1, 3) : NEXT I : T = "FINISHED WITH SAVE." : GOTO 1630 
2300 IF LEFT$ (QM , 1) = "D" THEN INPUT "IS THE DISK READY"; QM : 

IF LEFT$ (QM , 1) <> "Y" THEN GOTO 1630 ELSE INPUT "WHAT IS YOUR 
NAME"; A$ : OPEN "0", 1, A$ + "/DUT" : PRINT# 1, L, CL, LN, I 

N, LM, U, Ul, IM : FOR I = TO 32 
2310 PRINT# 1, 0(1, 1); ","; 0(1, 2); ","; 0(1, 3) : NEXT I : CL 

OSE : T = "FINISHED WITH SAVE." : GOTO 1630 




176 BASIC Adventures 



Lost Dutchman's Gold 



Chapter Eleven 



Journey to the Center of the Earth 



by Greg Hassett 
About the author 

Greg Hassett is a fifteen year old schoolboy from 
Chelmsford, Massachusetts. He began writing 
adventures at the age of twelve, and had his first 
commercial sale that year. Journey to the Center of 
the Earth has been a consistent seller over the 
years. 

The following programs trace Greg's progress 

through the complexities of BASIC. They also state 

the ease with which he accomplished the ever 

demanding coding tasks placed before him by his 

Note: The save game routines of this program are 
for disk only. Tape routines may be created by 




BASIC Adventures 177 



audiences. His last BASIC program, Enchanted 
Island, (not included in this book), served as a 
springboard into Z-80 machine language, a route 
taken by many authors of adventure before and 
after him. 

Greg's other interests include Adventure World, 
the mail order adventure house he founded. He also 
has a high interest in all sports activities. He plans to 
enter the data processing field after completing his 
education. 



10 CLEAR 100 : DEFINT A - Z : CLS : PRINT CHR$(23); " 



JOURNEY TO THE CENTER OF 
THE EARTH ADVENTURE 
BY GREG HASSETT" 
20 POKE 16553, 255 : CP = 1 : GOSUB 1850 
30 CLS 

40 GOSUB 1750 : GOSUB 1640 

50 IF CP = 18 AND (VB <> 25 OR NO <> 21) PRINT "HORRORS! THE TRO 

LL THROWS AN AXE AT ME! I AM DEAD" : END 
60 IF CP = 18 PRINT M2$ : F5 = 1 : GOSUB 1640 
70 IF NO < 23 OR VB > 1 OR NO > 30 THEN 160 
80 IF NO <= 26 FD = FD + 1 ELSE FD = - 10000 
90 IF NO > 26 NO = NO - 4 
100 NO = NO - 22 

110 IF CP = 10 AND NO = 1 PRINT "AND FALL INTO THE LAVA??? FAT C 

HANCE!" : GOSUB 1640 : GOTO 70 
120 IF CP = 11 AND NO = 2 PRINT "DO YOU KNOW WHAT MOLTEN LAVA IS 

??? IT'S HOT, THAT'S WHAT!" : GOSUB 1640 : GOTO 70 
130 IF CP = 29 AND OB(10, 0) = 29 AND (NO = 4 OR NO = 2) PRINT " 

THE HYDRA WON'T LET ME THROUGH!" : GOSUB 1640 : GOTO 70 
140 IF P(CP, NO) = PRINT "I CAN'T GO THAT WAY!" : GOSUB 1640 : 
GOTO 70 

150 CP = P(CP, NO) : GOTO 30 

160 IF VB <> 2 AND VB <> 20 THEN 240 

170 IF NO = 10 AND OB(33, 0) = CP PRINT "IT IS SORT OF HEAVY, YO 

U KNOW." : GOSUB 1640 : GOTO 70 
180 IF NO = PRINT "I DON'T KNOW WHAT A "; CHR$(34); NO$; CHR$ ( 

34); " IS." : GOSUB 1640 : GOTO 70 
190 IF OB(NO, 0) <> CP PRINT "I DON'T SEE IT HERE." : GOSUB 1640 
: GOTO 70 

200 IF NO = 10 OR NO = 20 PRINT "OH GIVE ME A BREAK!!" : GOSUB 1 
640 : GOTO 70 

210 IF OB (NO, 0) = - 1 PRINT "I'M ALREADY CARRYING IT." : GOSUB 
1640 : GOTO 70 

220 IF OB (NO, 0) * CP AND NT >= 6 PRINT "I CAN'T CARRY ANY MORE. 

YOU'LL HAVE TO DROP SOMETHING." : GOSUB 1640 : GOTO 70 
230 IF OB(NO, 0) = CP PRINT "CHECK." : NT = NT + 1 : OB(NO, 0) = 

- 1 : GOSUB 1640 : GOTO 70 
240 IF VB <> 4 AND VB <> 29 THEN 290 
250 F3 = 

260 PRINT "I AM CURRENTLY CARRYING : " : FOR I = 1 TO LO : IF OB ( 

I, 0) = - 1 PRINT OB$(I) : F3 = 1 
270 NEXT I : IF F3 = PRINT "NOTHING." 
280 GOSUB 1640 : GOTO 70 
290 IF VB = 3 THEN 30 

300 IF NO = AND VB = PRINT "THAT DOESN'T MAKE ANY SENSE TO M 

E." : GOSUB 1640 : GOTO 70 
310 IF VB <> 5 THEN 370 
320 J = 

330 FOR I = 1 TO LO : IF OB(I, 0) = 1 J = J + OB(I, 1) 

340 NEXT I : PRINT "OUT OF A MAXIMUM OF 175 POINTS, YOU HAVE"; J 



178 BASIC Adventures 



Journey to the Center of the Earth 



350 IF J = PRINT "BOY, YOU STINK!" 

360 GOSUB 1640 : GOTO 70 

370 IF VB <> 6 AND VB <> 22 THEN 440 

380 IF NO$ <> "EVERYTHING" AND NO$ <> "ALL" THEN 420 
390 FOR I = 1 TO LO : IF OB(I, 0) = - 10 B(I, 0) = CP 
400 NEXT I : NT = 

410 PRINT "OKAY." : GOSUB 1640 : GOTO 70 

420 IF OB (NO, 0) <> - 1 PRINT "HOW CAN I DROP WHAT I'M NOT HOLDI 

NG??? M : GOSUB 1640 : GOTO 70 
430 OB(NO, 0) = CP : PRINT "O.K." : NT = NT - 1 : GOSUB 1640 : G 

OTO 70 

440 IF VB <> 7 AND VB <> 28 THEN 480 

450 IF H$(CP) = "" PRINT "YOU GOT ME INTO THIS MESS, NOW YOU GET 

ME OUT!" 
460 PRINT H$(CP) : H$(CP) = "" 
470 GOSUB 1640 : GOTO 70 
480 IF VB <> 8 THEN 550 

490 CLS : PRINT "SAVING..." : OPEN "0", 1, NA$ 
500 FOR I = 1 TO LO : IF OB$(I) = "" THEN 520 
510 PRINT* 1, OB(I, 0) 
520 NEXT I 

530 PRINT# 1, CP : CLOSE 
540 GOTO 30 

550 IF VB <> 9 THEN 610 

560 CLS : PRINT "LOADING..." : OPEN "I", 1, NA$ 
570 FOR I = 1 TO LO : IF OB$(I) = THEN 590 
580 INPUT* 1, OB(I, 0) 
590 NEXT I 

600 INPUT* 1, CP : CLOSE : GOTO 30 

610 IF VB <> 10 THEN 630 

620 GOTO 1410 

630 IF VB <> 11 THEN 660 

640 IF NO = PRINT "SAY WHAT?" : GOS-UB 1640 : GOTO 70 
650 PRINT "OKAY, IF IT IS REALLY NECESSARY..."; N0$ : GOSUB 1640 
: GOTO 70 

111 If To <> \\ print 7 "? don't do stupid things." : gosub 1640 -. 

680 G IF°OBU2, 0) <> " 1 PRINT "I DON'T HAVE ANY COKE TO DRINK ! " 

: GOSUB 1640 : GOTO 70 ™cim \e,in ■ c 

690 PRINT M3$ : 0B(12, 0) = : 0B(13, 0) = - 1 : GOSUB 1640 . G 

OTO 70 

710 S £(31 ") T oV 7 l'pRI..T "BUT I HAVE NO FOOD! ! " : GOSUB 164 

720 If^No! 0) <> CP PRINT "I DON'T SEE IT." : GOSUB 1640 : GO 

730 O IF B NO = 10 PRINT "THE HYDRA WHARFS DOWN THE FOOD." : 0B(31, 
0) = : OB$(10) = "A GIANT HYDRA RUBBING HIS STOMACH" : GOSUB 

740 1 IF NO =°20 PRINT "THE BUGS IN THESE CAVES ONLY EAT HUMAN FLE 

750 H i"F N0 G O U 3 P 6 R 4 INT : « G Y0 T U cIn'T BE SERIOUS." : GOSUB 1640 = GOTO 
70 



Journey to the Center of the Earth 



BASIC Adventures 179 



760 PRINT "IT REFUSES TO EAT THE FOOD." : GOSUB 1640 : GOTO 70 
770 IF VB <> 14 THEN 850 

780 IF NO = 10 AND OB(33, 0) = CP PRINT "THE UNDERTAKER JUST TOO 
K HIM AWAY." : OB(33, 0) = : GOSUB 1640 : GOTO 70 

790 IF OB(NO, 0) <> CP AND OB(NO, 0) <> - 1 PRINT "I DON'T SEE I 
T AND I'M NOT HOLDING IT, SO HOW CAN I HIT IT?" : GOSUB 1640 : 
GOTO 70 

800 IF NO = 3 PRINT "NO! I! I KIND OF LIKE THE PARROT! POLLY WANT 

A CWAKER?" 
810 IF NO = 10 PRINT "OKAY... 
THE HYDRA GRUNTS >>DAMN MOSQUITOES<< " 

820 IF NO = 20 PRINT "YUCH! I DON'T WANT TO TOUCH IT!!!" 
830 IF NO = 3 OR NO = 10 OR NO = 20 GOSUB 1640 : GOTO 70 
840 PRINT "OKAY... 

OUCH! I HURT MY HAND!" : GOSUB 1640 : GOTO 70 

850 IF VB = 15 PRINT "I CAN'T KILL ANYTHING, I'M TOO WEAK. BUT M 
AYBE 

IF YOU WERE A BIT MORE SPECIFIC..." : GOSUB 1640 : GOTO 70 
860 IF VB <> 16 THEN 950 

870 IF OB(33, 0) = CP AND NO = 10 PRINT "IT IS ALREADY BURNED TO 

A CRISP." : GOSUB 1640 : GOTO 70 
880 IF OB(6, 0) <> - 1 PRINT "I DON'T HAVE A LIGHTER OR MATCHES! 

!" : GOSUB 1640 : GOTO 70 
890 IF NO = 3 PRINT "NEVER!! YOU KNOW SOMETHING, YOU'RE A SADIST 

." : GOSUB 1640 : GOTO 70 
900 IF NO = 10 AND OB(10, 0) = CP THEN OB(10, 0) = : OB(33, 0) 
= CP : PRINT "THE HYDRA CRUMBLES TO THE GROUND DEAD." : GOSUB 
1640 : GOTO 70 

910 IF NO = 20 PRINT "THE BUG CANNOT BE BURNED. <GULP>" : GOSUB 

1640 : GOTO 70 
920 IF NO = 10 OB(10, 0) = 
930 PRINT "IT DOESN'T BURN." 
940 GOSUB 1640 : GOTO 70 

950 IF VB = 17 PRINT "AND JUST WHO DO YOU THINK I AM, ROCKY???" 

: GOSUB 1640 : GOTO 70 
960 IF VB - 18 PRINT "I DON'T KNOW HOW TO LIGHT THINGS. IF YOU 
WANT ME TO BURN SOMETHING, TELL ME SO!" : GOSUB 1640 : GOTO 70 
970 IF VB <> 19 THEN 1060 

980 IF NO$ = "COIN" NO$ = "QUARTER" : NO = 7 

990 IF NO = PRINT "I DON ' K KNOW WHAT ONE IS." : GOSUB 1640 : G 
OTO 70 

1000 IF NO = 7 THEN 1020 

1010 IF OB(NO, 0) <> - 1 PRINT "I'M NOT HOLDING IT RIGHT NOW." : 

GOSUB 1640 : GOTO 70 
1020 IF CP <> 27 PRINT "I DON'T SEE ANY COKE MACHINES HERE." : G 

OSUB 1640 : GOTO 70 
1030 IF NO <> 7 PRINT "THAT IS RIDICULOUS." : GOSUB 1640 : GOTO 

70 

1040 IF OB(NO, 0) <> - 1 PRINT "I HAVE NO MONEY." : GOSUB 1640 : 
GOTO 70 

1050 IF OB(7, 0) = - 1 AND CP = 27 PRINT "ALL RIGHT. CHIKCLIK 
CHINGGGG! 

A COKE POPPED OUT. THERE IS NOW A BOTTLE OF COKE HERE." : OB (7, 
0) = : NT = NT - 1 : OB(12, 0) = 27 : GOSUB 1640 : GOTO 70 



180 BASIC Adventures 



Journey to the Center of the Earth 



1060 REM 

1070 IF VB <> 21 THEN 1150 

1080 IF NO <> 18 AND OB(NO, 0) = - 1 PRINT "IT'S KIND OF HEAVY, 

YOU KNOW." : GOSUB 1640 : GOTO 70 
1090 IF OB(NO, 0) <> - 1 PRINT "FIRST YOU HAVE TO HELP ME FIND I 

T, DUMMY!" : GOSUB 1640 : GOTO 70 
1100 IF CP = 10 OR CP = 11 THEN 1120 

1110 PRINT "NOTHING HAPPENED" : GOSUB 1640 : GOTO 70 
1120 IF CP = 10 CP = 11 : GOTO 1140 
1130 CP = 10 
1140 GOTO 30 

1150 IF VB = 23 VB = 1 : GOTO 70 

1160 IF VB = 24 PRINT "TRY KILL " ; NO$ : GOSUB 1640 : GOTO 70 
1170 IF VB <> 25 THEN 1200 

1180 IF NOC21 PRINT "NOTHING HAPPENED" : GOSUB 1640 : GOTO 70 
1190 PRINT "SIR WHAT??? I DON'T UNDERSTAND!" : GOSUB 1640 : GOTO 
70 

1200 IF VB <> 26 THEN 1270 

1210 IF CP = 1 AND OB(14, 0) = - 1 AND OB(22, 0) = 1 PRINT "OKAY 

! • ! " : GOTO 1400 
1220 IF CP <> 1 PRINT "I CAN'T." : GOSUB 1640 : GOTO 70 
1230 IF VB <> 26 THEN 1270 

1240 IF OB(14, 0) <> - 1 PRINT "I CAN'T. I HAVE NO TOOLS." : GOS 

UB 1640 : GOTO 70 
1250 PRINT "I CAN'T. I DON'T SEE THE FRIBULATING GONKULATOR 
AROUND ME."; : IF OB(22, 0) = - 1 PRINT " I THINK I HAVE TO DROP 

IT FIRST." ELSE PRINT 
1260 GOSUB 1640 : GOTO 70 
1270 IF VB <> 27 THEN 1350 

1280 IF NO = PRINT "WHAT THE DEVIL IS A "; NO$; "??" : GOSUB 1 
640 : GOTO 70 

1290 IF NO = 20 OR NO = 10 THEN IF OB(NO, 0) = CP PRINT "YUCH!!! 

I'D NEVER EAT A "; NO$; •"!!!" : GOSUB 1640 : GOTO 70 
1300 IF NO = 10 AND OB(33, 0) = CP PRINT "WELL... IT'S COOKED NOW 

, BUT IT STILL LOOKS KIND OF GROSS." : GOSUB 1640 : GOTO 70 
1310 IF OB(NO, 0) <> - 1 PRINT "I'M NOT HOLDING IT." : GOSUB 164 

: GOTO 70 

1320 IF NO = 3 AND OB(3, 0) V= - 1 PRINT "I'D RATHER NOT. I DON'T 

CARE FOR PARROT MEAT." : GOSUB 1640 : GOTO 70 
1330 IF NO = 31 AND 06(31, } = - 1 NT = NT - 1 : PRINT "HUMM! 

IT WAS FILET MIGNON, MY FAVORITE DISH." : 0B(31, 0) = : GOSU 

B 1640 : GOTO 70 

1340 PRINT "I THINK THAT "; 0B$ (NO) ; " WOULD GIVE ME INDIGESTION 

AND I DON'T HAVE ANY PEPT0-6I SMOL . " : GOSUB 1640 : GOTO 70 
1350 IF VB <> 30 THEN 1390 

1360 IF CP <> 10 AND CP <> 11 PRINT "NOTHING HAPPENED." : GOSUB 

1640 : GOTO 70 _ 
1370 PRINT "NICE TRY, BUT THAT'S AN OLD, WORN OUT MAGIC WORD. 

1380 GOSUB 1640 : GOTO 70 

1390 PRINT "I DON'T KNOW HOW TO DO THAT." : GOSUB 1640 : GOTO 70 
1400 FOR I = 1 TO 1000 : NEXT I 

1410 CLS : PRINT "OUT OF A MAXIMUM OF 175 POINTS, YOU HAVE SCORE 
D"; : J = 



Journey to the Center of the Earth 



BASIC Adventures 181 



1420 FOR I = 1 TO LO : IF OB(I, 0) = 1 J = J + OB ( I , 1) 
1430 NEXT I 

1440 PRINT J; "POINTS." 

1450 IF J = 175 PRINT "ALL OF ADVENTUREDOM GIVES TRIBUTE TO YOU, 
ADVENTURER GRANDMASTER! " : END 

1460 IF J > 165 PRINT "YOUR SCORE PUTS YOU IN MASTER ADVENTURER 
CLASS A." : END 

1470 IF J > 150 PRINT "YOUR SCORE PUTS YOU IN MASTER ADVENTURER 
CLASS B." : END 

1480 IF J > 140 PRINT "YOU HAVE REACHED A "; CHR$(34); "JUNIOR M 

ASTER"; CHR$(34); " STATUS" : END 
1490 IF J > 120 PRINT "YOU MAY NOW CONSIDER YOURSELF A "; CHR$(3 

4); "SEASONED ADVENTURER"; CHR$(34) : END 
1500 IF J > 110 PRINT "YOU HAVE ACHIEVED THE RATING: "; CHR$(34) 

; "EXPERIENCED ADVENTURER"; CHR$(34); "." : END 
1510 IF J > 100 PRINT "YOUR SCORE QUALIFIES YOU AS A NOVICE CLAS 

S ADVENTURER." : END 
1520 PRINT "YOU ARE OBVIOUSLY A RANK AMATEUR. BETTER LUCK NEXT T 

I ME • " : END 

1530 PRINT "GADZOOKS ! I ! A GIANT BUG JUST WALKED IN TO KILL MEM! 
n 

1540 FF = 1 
1550 GOSUB 1640 

1560 IF NO$ ■ "SESAME" AND VB$ = "OPEN" PRINT "THE BUG HAS SHRUN 
K TO IT'S PROPER SIZE AND SCURRIED AWAY." : GOTO 1620 

1570 IF NO <> 20 OR VB <> 15 PRINT "HELP ME!!! I'M BEING DEVOURE 
D BY A GIANT BUG!!! THE END IS 

NEAR! OWM THIS HURTS!! I'M DY ING . . . DY ING . . . DEAD . " : END 

1580 IF OB(2, 0) <> - 1 NO = 2 : PRINT "I DON'T HAVE A SWORD!!!" 
: GOTO 1570 

1590 IF SW = 8 PRINT "MY SWORD IS DULL, REMEMBER???" : NO = 2 : 
GOTO 1570 

1600 PRINT "DING! DONG! THE BUG IS DEAD, THE BUG IS DEAD!!!" 
1610 SW = SW + 1 : IF SW = 8 PRINT "MY SWORD IS DULL NOW." 
1620 GOSUB 1640 : GOTO 70 
1630 END 

1640 PRINT : INPUT "ENTER YOUR COMMAND"; CM$ 

1650 IF CM$ = "ABRA CADABRA" AND F5 < 3 AND FF = 1 NO$ = "SESAME 

" : VB$ = "OPEN" : FF = : F5 ■ F5 + 1 : RETURN 
1660 VB$ = "" : NO$ = " " : VB = : NO = 

1670 LC = LEN (CM$ ) : FOR I = 1 TO LC : IF MID$(CM$, I, 1) <> " " 

VB$ = VB$ + MID$(CM$, I, 1) : NEXT I 
1680 FOR I = 1 TO NV : IF VB$(I) = VB$ VB = I : GOTO 1700 ELSE N 
EXT I 

1690 VB = : NO$ = VB$ : GOTO 1720 

1700 IF LEN ( VB$) + 1 > = LEN (CM$ ) NO = : RETURN 

1710 NO$ = RIGHT$(CM$, LEN (CM$ ) - 1 - LEN ( VB$ ) ) 

1720 FOR I = 1 TO NN : IF NO$(I) = NO$ THEN 1740 ELSE NEXT I 

1730 NO = : RETURN 

1740 NO = I : RETURN 

1750 PRINT P$(CP) : PRINT 

1760 FOR I = 1 TO LO : IF OB(I, 0) = CP PRINT "THERE IS "; OB$ (I 

) ; " HERE." 
1770 NEXT I 



182 BASIC Adventures 



Journey to the Center of the Earth 



1780 PRINT "I CAN GO : "; : F2 = „ „ 

1790 FOR I = 1 TO 4 : IF P(CP, I) <> PRINT NO$ (I + 22); 

: F2 = 1 

1800 NEXT I : IF F2 = PRINT "NOWHERE!" 
1810 IF CP = 18 AND OB(3, 0) = - 1 PRINT : PRINT Ml$ 
1820 IF RND(35) = 5 AND CP <> 1 AND CP <> 37 AND CP <> 27 PRINT 
• GOTO 1530 

1830 IF FD > 4 PRINT : PRINT "IF YOU'D LIKE, YOU CAN MAKE IT EAS 

IER ON YOURSELF BY TYPING 
N, S, E, OR W INSTEAD OF NORTH, SOUTH, ECT." : FD = 
1840 RETURN 

1850 NP = 37 : DIM P$(NP) 

1870 PSu/^l'AM IN A SHIP. ON A COMPUTER SCREEN IN HERE IT SA 
YS * 

SHIP'WILL NOT FUNCTION — FRIBULATING GONKULATOR IS BURNED OUT. 
IT IS OBVIOUS THAT THIS aHIP HAS CRASHED." 

1880 DATA 2, 6, 5, 4:P$(2) = "I'M IN A COBBLESTONE HALLWAY. I CA 

N HEAR , - 

CHIRPING NEARBY. SOUNDS LIKE BUGS..." : DATA 8, 1, 3, b 
1890 P$ (3) = "I'M IN A DARK ROOM... OH NO!!! THERE ARE GIANT BUGS 
ALL 

AROUND ME!!!" : DATA 0, 0, 0, 2 

1MB P$(4 = "I'M IN A SMALL ROOM. A SCRIBBLING HERE SAYS : 

HAR HAR HAR! YOU'LL NEVER MAKE IT! » ARBADAC ARBA «" I DATA 0, 

1910'p$'(5) = "I'M IN A DUSTY COBBLESTONE HALLWAY." : DATA 0, 25, 

192b'p$(6) = "I'M IN A DUSTY PLACE. IT IS VERY DARK IN HERE. I'M 

193 S C pf(?i" = ! "?'M A IN'A 2 LOW CRAWL SPACE. IT SEEMS AS IF WE'RE NOT 

IZl ||%I^ B Sl^ M li-i%00^«T 4 H , RS£K"iL > L8. IMBEDDED IN THE WAL 
LS ARE 

SCATTERED RUBIES." : DATA 9, 2, 0, 13 

1950 P$(9) = "I'M IN A DARK ROOM. THIS ONE IS NOT SO SCARY . 
I THINK I HEAR GRUNTS AND GROANS NEARBY • " : DATA 10, 8 23 
1960 P$(10) = "I'M ON THE SOUTH SIDE OF A CHASM. MOLTEN LAVA IS 

BENEATH ME." : DATA 11, 9, 0, ^ uaCM « . nzvTA 16 1 

1970 P$(ll) = "I'M ON THE NORTH SIDE OF THE CHASM. : DATA 16, 1 

1980 £$(12) = "I'M IN A MAZE OF TWISTY LITTLE PASSAGES." : DATA 
12, 12, 13, 14 



1990 P$(13) - P$(12) 
2000 P$(14) = P$(12) 
2010 P$(15) = P$(12) 



: DATA 13, 13, 8, 12 
: DATA 14, 15, 14, 12 
: DATA 14, 15, 15, 7 
-)(AOa duim - "I'M ON A WOOD PLATFORM. A SIGN WARNS: 
GO BACK 'BEWARE ! GO SOUTH! ! ! THERE IS A RICKETY BRIDGE TO THE 

2030 K p"'("l7; ^'"aMm PASSAGE . A SIGN POINTS WEST AND SA 

TO TROLLS PLACE > A RICKETY BRIDGE EXTENDS SOUTHWARD. 

MARKINGS IN THE DUST INDICATE THAT SOMEONE WAS HERE RECENTLY." : 
DATA 0, 16, 0, 18 



Journey to the Center of the Earth 



BASIC Adventures 183 



2040 P$(18) = "A VOICE BOOMS OUT : 

WHO DARES TO ENTER MY PALACE??? (SOUNDS LIKE A TROLL TO ME!)" : 
DATA 0, 0, 0, 19 

2050 P$(19) = "I'M IN THE TROLL'S PALACE. IT'S BREATHTAKING'!! T 
HE CEILING 

IS SO HIGH I CAN'T EVEN SEE IT!" : DATA 0, 20, 0, 
2060 P$(20) = "I'M AT ONE END OF A SECRET PASSAGE." : DATA 19, 2 
1, 0, 

2070 P$(21) = "I'M IN A SECRET PASSAGE." : DATA 21, 21, 20, 22 
2080 P$(22) = P$(21) : DATA 21, 22, 22, 23 
2090 P$(23) = P$(20) : DATA 23, 9, 22, 23 

2100 P$(24) = "I'M IN A HUGE ICE CAVERN. THE CEILING AND WALLS A 
RE 

COMPLETELY ICE." : DATA 6, 26, 25, 

2110 P$(25) = "I'M IN A ROOM WITH MANY ANIMALS... 

WAIT! THEY'VE ALL RAN AWAY" : DATA 5, 0, 0, 

2120 P$(26) = "I AM IN A ROOM WITH TRACES OF SLIME ON THE FLOORS 

AND WALLS." : DATA 24, 29, 27, 28 
2130 P$(27) = "I'M IN...AL'S DINER??? THERE'S A COKE MACHINE HER 
E. IT SAYS: 

ENJOY COCA-COLA. 25 CENTS (NO CANADIAN COINS, QUARTER ONLY) " : D 

ATA 0, 0, 0, 26 
2140 P$(28) = "I'M IN A HUGE PIT." 
2150 DATA 0, 0, 26, 

2160 P$(29) = "I'M IN THE HYDRA ROOM. THE WALLS ARE ALL SLIME. B 
OY, 

I'VE NEVER SEEN ANYTHING SO GROSS IN MY LIFE!" : DATA 26, 30, 31 
, 32 

2170 P$(30) = "I'M IN THE DRAGON ROOM. IT SEEMS TO BE DECORATED 

WITH DRAGONS." : DATA 29, 34, 0, 33 
2180 P$(31) = "I'M IN A TORTURE CHAMBER. LET'S GET OUT OF HERE Q 

UICK!!" : DATA 31, 29, 31, 31 
2190 P$(32) = "THIS IS THE CLAM ROOM. THE WALLS ARE SOLID CLAMSH 

ELL 

EMBEDDED IN LIMESTONE." : DATA 0, 0, 29, 

2200 P$(33) = "I'M IN A MAMMOTH GARDEN. THIS IS ALL PLANTS." : D 
ATA 0, 0, 30, 

2210 P$(34) = "I'M IN THE VELVET ROOM. THE WALLS AND CEILING ARE 

VELVET." : DATA 30, 34, 35, 
2220- P$ (35) = "I'M IN AN ARABIAN ROOM. ARABIAN GUITARS ARE PLAYI 
NG NEARBY. 

THERE IS AN OIL SLICK HERE. LOOKS LIKE MACHINE OIL, 10-W-30." : 

DATA 36, 37, 0, 34 
2230 P$(36) = "I'M IN THE TREASURE ROOM. MANY DWARVES GUARD SOME 
PRETTY 

SCRAWNY TREASURE. NOTHING TO FLIP OVER, ANYWAY." : DATA 0, 35, 
, 

2240 P$(37) = "I'M AT MAC'S EARTHDIGGER BODY SHOP." : DATA 0, 0, 
0, 35 

2250 DIM P(37, 4) : FOR I = 1 TO 37 : FOR J = 1 TO 4 : READ P(I, 

J) : NEXT J , I 
2260 LO = 33 : DIM OB$ (LO) , OB(LO, 1) 

2270 OB$(l) = "A SET OF KEYS" : DATA 6, : OB$(2) = "A SHINY SW 
ORD" : DATA 16, 



184 BASIC Adventures 



Journey to the Center of the Earth 



2280 OB$(3) = "A PARROT IN A CAGE" : DATA 25, 5 : OB$(4) = "A GO 

LD NUGGET" : DATA 4, 10 
2290 OB$(5) = "A 35,000 CARAT DIAMOND" : DATA 7, 10 : OB$(6) = " 

A CIGARETTE LIGHTER" : DATA 28, 
2300 OB$(7) = "A QUARTER" : ■ DATA 28 , : OB$(8) = "AN ENORMOUS E 

ME HAL D" : DATA 32, 15 
2310 OB$(9) = "SOME SILVER BARS" : DATA 33, 15 : OB$(10) = "A GI 

ANT HYDRA WITH NINE HEADS" : DATA 29, 
2320 OB$(ll) = "A MING VASE" : DATA 30, 10 : OB$(12) = "A BOTTLE 

OF COKE" : DATA 0, 
2330 OB$(13) = "AN EMPTY COKE BOTTLE" : DATA 0, : OB$(14) = "S 

OME TOOLS" : DATA 34, 
2340 OB$(15) = "A LARGE RUBY" : DATA 8, 15 : OB$(16) = "GOLD BAR 

S" : DATA 19, 20 

2350 OB$(17) = "A DIAMOND NECKLACE" : DATA 19, 25 : OB$(18) - A 

MAGIC WAND" : DATA 14, 
2360 OB$(22) = "A FRI BULATING GONKULATOR" : DATA 37, 50 
2370 OB$(20) = "A GIANT BUG ASLEEP" : DATA 31, 

2380 OB$(31) = "SOME TASTY FOOD" : OB$(32) = "SOME HUMAN SKELETO 

IMS" : OB(32, 0) = 31 : OB(32, 1) = 
2390 OB$(33) = "A DEAD HYDRA ON THE GROUND" 
2400 FOR I = 1 TO 20 : READ OB(I, 0), OB(I, 1) : NEXT I 
2410 OB(22, 0) = OB(19, 0) : OB(22, 1) = OB(19, 1) 
2420 OB(19, 1) = : OB(19, 0) = 
2430 OB(31, 0) = 27 : OB(31, 1) = 

2440 DATA KEYS, SWORD, PARROT, NUGGET, DIAMOND, LIGHTER, QUARTER 
, EMERALD, SILVER, HYDRA, VASE, COKE, BOTTLE, TOOLS, RUBY, GOL 

2441 DATA^WAND , SIGN, BUG, ALEXANDER, GONKULATOR, NORTH, SOUTH, 
EAST, WEST 

2450 DATA N, S, E, W, FOOD, SKELETONS 
2460 NN = 32 : DIM NO$ (NN) 

2470 FOR I = 1 TO NN : READ NO$(I) : NEXT I 

2480 DATA GO, GET, LOOK, IN VEN , SCORE, DROP , HELP , SAVE , LOAD, Q 
UIT, SAY, DRINK, FEED, HIT, KILL, BURN, FIGHT, LIGHT, INSERT , 

2 481 K DATA A RELEASE , CONTINUE, DESTROY, SIR, FIX, EAT, ?, INVENTOR 

2490 NV°= S 30 : DIM VB$ (NV) : FOR I = 1 TO NV : READ VB$(I) : NEX 

2500^11$ = "THE PARROT CHANTS: SIR ALEXANDER ... SIR ALEXANDER!" 
2510 M2$ « "THE TROLL SCURRIES AWAY IN FEAR." 
2520 M3$ = "GULP GLUK GULP! (BURP) THAT WAS REFRESHING!" 
2530 DIM H$ (NP) 

2540 H$(25) = "THIS PARROT TALKS... Ttr/va - 

2550 H$(29) = "CIGAR? CIGARETTE? TIPPARILLO? 

2560 HS 10) = "YOU KNOW, THIS WORLD IS ENCHANTED... 

2570 H$U2) = "YOU CAN MAKE THE PASSAGES LOOK LESS ALIKE BY DROP 

25^ N hJi^ G -*HS(12) • H$(14) = H$(12) : H$(15) = H$(12) 

2590 THINk'wE'RE SUPPOSED TO LEAVE WHAT WE FIND HERE. 

2600 H$(35) = "OFTEN TIMES OIL MEANS AN AUTO BODY SHOP IS NEARBY 



Journey to the Center of the Earth 



BASIC Adventures 185 



2610 H$(31) = "THE BUG WILL NOT BOTHER YOU. IT IS ASLEEP. 
HINT: IF YOU LINGER TOO LONG IN THIS ROOM IT WILL WAKE UP! " 
2620 H$(2) = "YOU KNOW , IN THIS ENCHANTED WORLD, MANY THINGS THA 
T 

ARE SMALL ON EARTH ARE VERY LARGE..." 

2630 H$(20) = "TRY TO FIND YOUR WAY TO THE OTHER END, DUMMY!!" : 
H$(23) = H$(20) 

2640 PRINT@ 0,; : INPUT "WHAT IS YOUR NAME"; A$ : NA$ = A$ + " / A 

Nl: 1" 
2650 RETURN 



186 BASIC Adventures 



Journey to the Center of the Earth 



Chapter Twelve 



King Tut's Tomb 



f9\ 



by Greg Hassett 






v 

ii ii M ii ii ii n 



i M ii n 



Note: The save game routine in this program is for 
disk only. Tape routines may be created by 
modifying lines 640 to 690. 



" '" '■ " ■■ II 11 11 11 11 '1 ^ 



> * ' r * 



— ' 



BASIC Adventures 187 



10 CLEAR 1000 : ON ERROR GOTO 2130 
20 CLS : PRINT CHR$(23); " 



ENTRY INTO KING TUT'S TOMB 

BY GREG HASSETT" : DEFINT A - Z : DEFSTR S J SI * "I DON 
•T SEE IT HERE." 

21 S2 = "DON'T BE RIDICULOUS." : CP = 1 : NM = 35 : S3 = "I DON' 

T KNOW THAT WORD." : GOTO 2140 
30 GOSUB 1920 : IF NM < NM = 
40 IF RND(80) = 42 AND CP <> 1 THEN 1550 
50 IF RND(57) = 20 TG = 1 
60 IF TG = 1 NG = NG + 1 
70 IF CP = 1 TG = : NG = 

80 IF (OB(14, 0) = CP OR OB(12, 0) = CP) AND TG = 1 PRINT "THE G 
OOBER SEES THE SNAKE, LEAPS UP AND RUNS AWAY ! " : TG = : NG = 


90 IF NG > 3 THEN 1630 

100 IF TG = 1 PRINT "THERE IS A THREATENING LITTLE GOOBER IN THE 
ROOM WITH ME." 

110 IF NM = AND MF = INPUT "YOU ARE NOW OUT OF MATCHES. I AM 

PREPARED TO GIVE YOU TEN MORE, 
BUT THIS WILL SUBTRACT 25 POINTS FROM YOUR FINAL SCORE. DO YOU 
WANT THE EXTRA MATCHES"; EM$ 

120 MF = 1 : IF LEFT$ (EM$ , 1) = "Y" PRINT "OKAY." : NM = 10 : OB 

(33, 0) = - 1 : OB(34, 0) = 
130, GOSUB 1820 : IF VB = 32 VB = 6 ELSE IF VB$ = "I" VB = 4 
140 IF NM = OB(34, 0) = - 1 : OB(33, 0) = 
150 IF VB$ = "L" VB = 3 

160 IF OB(12, 0) = - 1 GS = GS + 1 ELSE IF VB$ = "LIS" VB = 4 
170 T = T + 1 : IF BI > BI = BI + 1 

180 IF VB$ = "INI" AND T = 1 OB(35, 0) = - 1 : OB(33, 0) = - 1 : 
OB(32, 0) = : PRINT "ALL RIGHT." : NM = NM - RND ( 4 ) : GOTO 
110 

190 IF NO$ = "FUC" OR NO$ = "SHI" PRINT "TCH! SUCH LANGUAGE!" : 
GOTO 110 

200 IF MF = 1 AND M2 = PL(0) = PL(0) - 25 : M2 = 1 

210 IF VB > 10 AND VB <> 20 AND NO$ = "" INPUT "WHAT DIRECT OBJE 

CT DO YOU WANT ME TO DO THAT TO"; NO$ : GOSUB 1890 
220 IF NO$ <> "" AND VB = 1 AND NO = PRINT "THAT DOESN'T MAKE 

ANY SENSE TO ME." : GOTO 11.0 
230 IF VB = 20 THEN 1140 

240 IF VB = 6 AND (NO$ - "EVE" OR NO$ = "ALL") THEN 600 

250 IF VB > 10 AND NO = PRINT "I DON'T KNOW WHAT A "; Nl$; " I 

S!" : GOTO 110 
260 IF VB > 19 THEN 1130 

270 ON VB GOTO 280, 370, 30, 490, 520, 540, 620, 640, 670, 700, 

710, 820, 850, 890, 930, 1000, 1060, 1110, 1120 
280 IF NO$ <> "" AND NO = PRINT S3 : GOTO 110 
290 IF NO$ = "" INPUT "WHERE"; NO$ : GOSUB 1890 

300 IF NO > 28 OR NO < 21 PRINT "YOU MUST USE COMPASS POINTS." : 
GOTO 110 



188 BASIC Adventures 



King Tut's Tomb 



310 IF NO > 24 NO = NO - 4 

NO - NO _ 21 x » 

330 IF GF = AND ((CP = 18 AND NO = 1) OR (CP = 37 AND NO = 0)) 

PRINT "THE GATE IS LOCKED'" : GOTO 110 „ 
340 IF P(CP, NO) = AND CP <> 1 PRINT "THERE IS A WALL THERE. 
• GOTO 110 

350 IF P(CP, NO) = PRINT "I CAN'T GO THAT WAY." : GOTO 110 
160 CP = P(CP, NO) : GOTO 30 , Qnn 
370 IF NO$ = INPUT "WHAT SHOULD I GET"; NO$ : GOSUB 1890 
380 IF NO = 12 AND OB(12, 0) = CP THEN 470 

ill IV OB (NO 0) = - 1 PRINT "I'VE ALREADY GOT IT!" : GOTO 110 
400 IF NO ( = 12 AND OB(14, 0) = CP PRINT "THAT IS BOTH IMPRACTICA 

L AND VERY DANGEROUS." : GOTO 110 
410 IF NO$ = "KNI" PRINT "THE GOOBERS' KNIVES VANISH AS THEY HIT 

THE WALLS OF THE TOMB." : GOTO 110 
420 IF NO = PRINT S3 : GOTO 110 DDTrHT „ 

430 IF NO = 29 AND TG = 1 PRINT "THAT WOULD NOT BE TOO BRIGHT. 

: GOTO 110 _ oc 

440 IF NO = 32 AND OB(35, 0) r CP LET NO = 35 
450 IF OB(NO, 0) <> CP PRINT SI : GOTO 110 

\l £ : ^caS^carry any more " = -TO 110 

480 ZZ - 22 + 1 I PRINT "ALL RIGHT." t OB(NO, 0) = - I : GOTO 11 

490 PRINT "I AM CURRENTLY CARRYING : " : ZZ = : FOR I = 1 TO LO 

• IF 06(1, 0) = " 1 PRINT OBS(I) : ZZ = ZZ + 1 
500 NEXT I : IF ZZ = PRINT "NOTHING ! " 

YOU^CAN* GET l^ZsOt UP TO 32 POINTS WHEN YOU WIN OR QUIT, 
KT» y^nS "^S A "; Nl $; "2" : GOTO 1 

550 B IF N0$ = » INPUT "WHAT DO YOU WANT ME TO DROP"; N0$ : GOSUB 

560 18 IF NO$ = »» OR NO = PRINT "HUH2" : GO TO 110 

570 IF NO = 32 AND 0B(35, 0) = - = ^ • Of 590 ^ 

580 IF OB(NO, 0) <> -:1 PRIN T ! ZZ = ZZ - X I GOTO 110 

590 PRINT "OKAY." : OB(NO, 0) = CP . ZZ ZZ 1 . 

600 FOR I = 1 TO LO : IF OB(I, 0) - - X OB I, 0) 

610 NEXT I : PRINT "OK." : ZZ = • 1 AVERAGE 

"RAH i YOU ARE A FOOL TO TAMPER WITH Mh..... « 

m^m i nl* . CLS • PRINT "SAVING..." : FOR I - 1 TO LU 
640 OPEN "0", 1, NA§ : CLb . 

: IF OB$(D = THEN 660 
6 660 aS*! VPRWH K CP; GF ; ZZ; TG; NG; T; GS; BI : CLOSE 

670 : CLS T : OPEN "I", X, NA $ : PRINT "LOADING..." = FOR 
: IF OBSd) = "" THEN 690 



King Tut's Tomb 



BASIC Adventures 189 



680 INPUT# 1, OB(I, 0) 

690 . N GOTO I 30 INPUT# if m ' CP ' GF ' ZZf TG ' NG ' T ' GS ' 81 : CL0S E 

700 INPUT "DO YOU REALLY WANT TO QUIT NOW"; QN$ : IF LEFT$ (QN$ 

1) = "Y" THEN 1660 ELSE 110 ' 
710 IF NO = 31 AND (CP = 18 OR CP = 37) THEN 770 
720 IF NO = 31 PRINT "I SEE NO GATE HERE." : GOTO 110 
730 IF OB(NO, 0) <> - 1 PRINT "I'M NOT HOLDING IT." : GOTO 110 
740 IF NO <> 30 AND NO <> 31 AND NO <> 20 PRINT "IT CANNOT BE OP 

ENED." : GOTO 110 
750 IF NO <> 31 THEN 780 

760 IF GF = 1 PRINT "IT IS ALREADY OPEN." : GOTO 110 

770 IF OB(4, 0) « - I PRINT "THE GATE IS OPEN." : GF = 1 : GOTO 

110 ELSE PRINT "IT WOULD HELP IF I HAD A KEY TO OPEN THE LOCKE 

D GATE." : GOTO 110 
780 IF NO = 20 PRINT "THE COFFIN IS OPEN." : GOTO 110 

790 TG = : NG = : PRINT "OKAY... 

POOF ! - - 

I AM ENGULFED IN A DENSE CLOUD OF ORANGE SMOKE AND AWAKEN 
COUGHING AND GASPING TO FIND..." 

791 FOR I = 1 TO LO : IF OB$(I) = "" OR OB(I, 0) = THEN 810 
800 IF ABS(OB(I, 0)) = 1 OB(I, 0) = RND(36) + 1 

810 NEXT I : ZZ = : OB(35, 0) = : CP = 1 : OB(33, 0) = 1 : 

B(32, 0) = 1 : FOR I = 1 TO 3500 : NEXT I : PD = : GOTO 30 
820 IF NO <> 31 PRINT "I DON'T KNOW HOW TO LOCK SUCH A THING." 
GOTO 110 

830 IF CP <> 37 AND CP <> 18 PRINT "WHAT GATE?" : GOTO 110 

840 PRINT "OKAY. THE GATE IS LOCKED." : GF = : GOTO 110 

850 IF OB (NO, 0) <> - 1 PRINT "I HAVE TO BE HOLDING SOMETHING TO 

READ IT." : GOTO 110 
860 IF NO <> 2 AND NO <> 16 PRINT S2 : GOTO 110 
870 IF NO = 2 PRINT "IT SAYS: 

BEST FISHES — STEVE MARTIN (KING TUT)" : GOTO 110 
880 PRINT "IT IS WRITTEN IN EGYPTIAN HIEROGLYPHICS." : GOTO 110 
890 IF OB(NO, 0) <> - 1 PRINT "I DON'T THINK I'M CARRYING IT." : 
GOTO 110 

900 IF NO <> 13 PRINT "YOU CAN'T BE SERIOUS." : GOTO 110 
910 IF OB(13, 0) <> - 1 PRINT "I HAVE NO FOOD!" : GOTO 110 
920 ZZ = ZZ - 1 : PRINT "*SMACK* THAT WAS GOOD!" : OBU3. 0) = 
: GOTO 110 

930 IF NO <> 12 AND NO <> 29 PRINT S2 : GOTO 110 

940 IF NO = 29 AND TG = PRINT "WHAT GOOBER?" : GOTO 110 

950 IF NO = 29 PRINT "THERE IS NOTHING HERE IT WANTS TO EAT. (EX 

CEPT PERHAPS ME!)" : GOTO 110 
960 IF OB(13, 0) <> - 1 PRINT "I HAVE NO FOOD!" : GOTO 110 
970 IF OB(I2, 0) <> PRINT "IT IS FULL." : GOTO 110 
980 IF OB(14, 0) <> CP PRINT "WHAT SNAKE?" : GOTO 110 

990 ZZ = ZZ - 1 : PRINT "THE SNAKE WHARFS DOWN YOUR FOOD AND RUB 
S HIS HEAD TO MY 

LEG TO SHOW AFFECTION." 

991 06(12, 0) = CP : OB(14, 0) = : OB(13, 0) = : GOTO 110 
1000 IF NO = 29 AND TG = PRINT "I SEE NO GOOBER HERE." : GOTO 

110 

1010 IF NO = 29 AND TG = 1 PRINT "THE GOOBERS ARE IMMORTAL." : G 
OTO 110 



190 BASIC Adventures 



King Tut's Tomb 



1020 IF NO <> 12 PRINT "IT ISN'T ALIVE!" : GOTO 110 
1030 IF OB(14, 0) = CP PRINT "THAT IS A STUPID THING TO TRY!" : 
GOTO 110 

1040 IF OB(12, 0) = - 1 OR OB(12, 0) = CP PRINT "YOU KILLED A LI 

TTLE SNAKE. THE BODY VANISHES." : OB(12, 0) = : GOTO 110 
1050 PRINT SI : GOTO 110 

1060 IF NO = 29 AND TG = 1 PRINT "HE IS MAD ENOUGH AT ME ALREADY 
!" : GOTO 110 

1070 IF NO = 29 PRINT "I SEE NO GOOBER HERE." : GOTO 110 

1080 IF OB(NO, 0) <> - 1 PRINT "I'M NOT HOLDING IT." : GOTO 110 

1090 IF NO <> 13 PRINT "THAT'S STUPID!" : GOTO 110 

1100 PRINT "THE SNAKE IS STARTLED, JUMPS AWAY FROM ME AND SCURRI 

ES AWAY INTO 
THE GLOOM." : OB(12, 0) = : GOTO 110 
1110 PRINT "OKAY..."; Nl$ : GOTO 110 
1120 PRINT "TRY OPEN." : GOTO 110 

1130 ON VB - 19 GOTO 1140, 1150, 1200, 1240, 1250, 1300, 1310, 1 

380, 1390, 1400, 1430, 1540 
1140 T = T - 1 : PRINT "YOU HAVE USED"; T; "TURNS SO FAR, AND YO 

U HAVE USED 
"; 35 - NM; "MATCHES." : GOTO 110 

1150 IF NO <> 20 AND NO <> 31 AND NO <> 30 PRINT "I DON'T KNOW H 

OW TO DO THAT." : GOTO 110 
1160 IF NO = 31 AND (CP = 18 OR CP = 37) PRINT "THE GATE IS CLOS 

ED AND LOCKED." : GF = : GOTO 110 
1170 IF OB(NO, 0) <> - 1 PRINT SI : GOTO 110 
1180 IF NO = 30 PRINT "IT IS ALREADY CLOSED." : GOTO 110 
1190 PRINT "OKAY. IT IS CLOSED." : GOTO 110 
1200 IF NO <> 12 THEN 540 

1210 IF OB(12, 0) <> - 1 PRINT "I'M NOT HOLDING A SNAKE." : GOTO 
110 

1220 IF TG = 1 PRINT "THE SNAKE ATTACKS THE GOOBER AND IN AN AST 
OUNDING 

FLURRY DRIVES THE GOOBER AWAY!" : OB (12, 0) = CP : NG = : TG = 

: ZZ = ZZ - 1 : GOTO 110 
1230 ZZ = ZZ - 1 : PRINT "THE SNAKE VANISHES INTO THE GLOOM." : 

OB(12, 0) = RND(35) + 1 : GOTO 110 
1240 IF OB (I, 0) = - 1 PRINT "NOTHING HAPPENED" : GOTO 110 ELSE 

PRINT "I'M NOT HOLDING IT!" : GOTO 110 
1250 IF NO <> 36 PRINT S2 : GOTO 110 

1260 IF OB(36, 0) <> - 1 PRINT "I HAVE NO WINE." : GOTO 110 
1270 IF 81 = PRINT "OKAY. GULP GULK." : OB(36, 0) = : OB(17, 

0) = - 1 : GOTO 110 
1280 PRINT "AHH...GOOD CURE FOR SNAKEBITE."; : IF OB(12, 0) = - 
1 PRINT " BUT THE SNAKE RAN AWAY!!" : OB (12, 0) = ELSE PRINT 

1290 OB(36, 0) = : OB(17, 0) = - 1 : BI = - 32000 : GOTO 110 
1300 PRINT "I DON'T WANT TO BREAK ANYTHING. THE BOSS SAYS I 
HAVE TO PAY FOR ANYTHING I BREAK ON AN ADVENTURE." : GOTO 110 
1310 IF NM = AND OB(33, 0) = - 1 OB(33, 0) = : OB(34, 0) = - 
1 

1320 IF NO <> 33 AND NO <> 32 PRINT S2 : GOTO 110 

1330 IF OB(33, 0) <> - 1 PRINT "I DON'T HAVE A MATCH!" : GOTO 11 




King Tut's Tomb 



BASIC Adventures 191 



1340 IF NO = 33 PRINT "OKAY. YOU NOW HAVE ONE LESS MATCH." : NM 

= NM - 1 : GOTO 110 
1350 IF OB(35, 0) <> PRINT "IT IS ALREADY LIT." : GOTO 110 
1360 IF OB(32 f 0) = - 1 OB(32, 0) = : OB(35 f 0) = - 1 : NM = N 

M - RN D ( 4 ) : PD = : GOTO 30 
1370 PRINT "I HAVE NO TORCH." : GOTO 110 

1380 PRINT "I AM NOT MOHAMMED ALI , YOU KNOW." : GOTO 110 
1390 PRINT "TRY HIT OR KILL." : GOTO 110 

1400 IF NO <> 16 PRINT "I SEE NO WRITING THERE." : GOTO 110 
1410 IF OB(NO, 0) <> - 1 PRINT "I HAVE NO BOOK." : GOTO 110 
1420 PRINT "IT SAYS: GOOBERS HATE SNAKES 
MOM IS FLAMMABLE." : GOTO 110 

1430 IF OB(33, 0) <> - 1 PRINT "I HAVE NO MATCHES ! " : GOTO 110 
1440 IF OB (NO, 0) <> - 1 PRINT "I AM NOT HOLDING IT RIGHT NOW " 
: GOTO 110 

1450 IF NO <> 2 AND NO <> 12 AND NO <> 13 AND NO <> 16 AND NO <> 
34 AND NO <> 32 AND NO <> 33 PRINT "IT DOESN'T BURN." : GOTO 
110 

1460 IF NO = 32 PRINT "YOU MIGHT TRY LIGHT TORCH INSTEAD." : GOT 
110 

1470 NM = NM - 1 

1480 IF NO = 2 PRINT "ALL RIGHT. THE POSTER GOES UP IN FLAMES " 

: ZZ = ZZ - 1 : 0B(2, 0) = : GOTO 110 
1490 IF NO = 12 PRINT "THE SNAKE BIT ME IN SELF DEFENSE." : BI = 

1 : 08$ (12) = "A SCARED SNAKE" : GOTO 110 
1500 IF NO = 13 PRINT "ALL RIGHT. IT IS NOW COOKED." : 0B$(13) = 
"SOME COOKED FOOD" : GOTO 110 

1510 IF NO = 16 PRINT "THAT IS A WASTE OF GOOD LITERATURE." : GO 
TO 110 

1520 IF NO = 34 PRINT "OKAY." : OB(34, 0) = : GOTO 110 
1530 IF NO = 33 PRINT "ALL RIGHT." : NM = NM - 1 : GOTO 110 
1540 PRINT "THAT IS WORTH"; OB(NO, 1); "POINTS." : GOTO 110 
1550 IF RND (2) - 1 PRINT "+=+= HOLY BANDAI DS ! " ; ELSE PRINT "SUFF 

RIN ' SUCCOTASH!"; 
1560 PRINT " AN ANCIENT MUMMY WALKED IN TO "; : IF RND ( 2 ) « 1 PR 

INT "TERMINATE ME ! " ELSE PRINT "PUT ME 
TO DEATH!" 
1570 GOSUB 1820 

1580 IF VB$ <> "BUR" PRINT "THE MUMMY IS CHARGING AT ME ' • " • FOR 
I = 1 TO 300 : NEXT I : IF RND ( 3) = 1 PRINT "HE KILLED ME!" : 
GOTO 2710 

1590 PRINT "HE SLIPS ON A CONVENIENTLY PLACED BANANA PEEL AND CR 
ACKS HIS 

SKULLL. THE BODY VANISHES." : GOTO 110 

1600 IF OB(33, 0) <> - 1 PRINT "I HAVE NO MATCHES"" : GOTO 1620 
1610 PRINT "THE MUMMY BURNS TO THE GROUND." : NM = NM - 1 : GOTO 
110 

1620 FOR I = 1 TO 1000 : NEXT I : GOTO 2710 
1630 PRINT "THE GOOBER THROWS A KNIFE AT ME « " 

1640 IF RND ( 3 ) = 1 PRINT "IT HITS ME!" : GOTO 2710 ELSE PRINT "I 

T MISSES!" 
1650 NG = 1 : GOTO 110 

f/nu,r C 5f : f 0R 1 = 1 TO LO : IF OB$(I) = THEN 1680 
1670 IF OB(I, 0) = 1 J = J + OB(I, 1) 



192 BASIC Adventures 



Kins Tut's Tomb 



1680 
1690 

1700 
1710 
1720 



NEXT I 

IF T > 310 J = J - 10 
IF T > 357 J = J - 15 

J = J + INT(NM/2) : FOR I=0TO3:J=J+ PL(I) : NEXT 
PRINT "YOU HAVE SCORED"; J; "POINTS OUT OF A MAXIMUM OF 207 



1730 PRINT "A SCORE OF"; J; "POINTS QUALIFIES YOU AS A :" 

1740 IF J > 182 PRINT "ADVENTURER GRANDMASTER" : END 

1750 IF J > 178 PRINT "MASTER ADVENTURER CLASS A" : END 

1760 IF J > 150 PRINT "MASTER ADVENTURER CLASS B" : END 

1770 IF J > 140 PRINT "EXPERIENCED ADVENTURER." : END 

1780 IF J > 110 PRINT "SEASONED ADVENTURER." : END 

1790 IF J > 90 PRINT "NOVICE CLASS ADVENTURER 

BETTER LUCK NEXT TIME." : END 

1800 IF J > 20 PRINT "PEE WEE CLASS ADVENTURER." : END 

1810 PRINT "ADVENTURER WITH THE INTELLIGENCE OF A CARROT." 



END 



> WHAT SHOULD I DO"; CM$ : IF CM$ = 



: VB = : NO = 

I = 1 TO LC : IF MID$(CM$, I, 



1) <> 



FOR I = 1 TO NV : IF VB$ ( 



FOR I = 1 TO NN : IF N0$ 



1820 CM$ = "" : INPUT "- 

"" THEN 1820 
1830 N0$ = "" : VB$ = "" 
1840 LC = LEN (CM$ ) : FOR 

VB$ = VB$ + MID$(CM$, I, 1) : NEXT I 
1850 Vl$ = VB$ : VB$ = LEFT$(V1$, 3) : 

I) = V6$ VB = I : GOTO 1870 ELSE NEXT I 
1860 VB = 1 : N0$ = VB$ : GOTO 1890 
1870 IF LEN(V1$) + 1 >= LEN (CM$ ) NO = : RETURN 
1880 N0$ = RIGHT$(CM$, LEN (CM$ ) - 1 - LEN(V1$)) 
1890 Nl$ = N0$ : N0$ = LEFT$(NO$, 3) 

= NO$(I) THEN 1910 ELSE NEXT I 
1900 NO = : RETURN 
1910 NO = I : RETURN 
1920 CLS 

1930 IF PD > 2 PRINT "YOU FELL INTO A PIT AND BROKE EVERY BONE I 

N YOUR BODY." : GOTO 271'0 
1940 IF OB(35, 0) <> - 1 AND CP <> 1 PRINT "IT IS PITCH DARK. YO 

U WILL PROBABLY KILL YOURSELF IF YOU 
PROCEED EXPLORING." : PD = PD + 1 : RETURN 
1950 IF T >= 1 P$(l) = "I'M OUTSIDE THE PYRAMID AGAIN." 
1960 PRINT P$(CP) : PD = 
1970 IF CP = 32 PL(1> = 5 
34 PL(2) = 5 
7 PL(3) = 5 

1 TO LO : IF OB (I, 0) = CP PRINT " *** THERE IS "; 
HERE." 



1980 IF CP 
1990 IF CP 
2000 FOR I 
0B$ (I) ; 
2010 NEXT I 
2020 FL = 



IF OB(35, 0) <> - 1 THEN 2070 ELSE PRINT "I CAN GO 
— "; : FOR I = TO 3 : IF P(CP r I) <> PRINT D$ (I) ; " "; 
: FL = 1 
2030 NEXT I : PRINT 

2040 IF GS = 30 PRINT "I THINK THE SNAKE IS GETTING HUNGRY AGAIN 

." : 0B$(12) = "A TAME HUNGRY SNAKE" 
2050 IF GS •» 50 PRINT "THE SNAKE JUST BIT ME!" : BI = 1 : 0B$(12 

) = "A VERY ANGRY SNAKE" 
2060 IF BI = 10 PRINT "THAT SNAKE BITE! I'M GETTING WEAKER... WIN 

E ! I NEED WINE!" 



King Tut's Tomb BAS,C Adventures 193 



2071 IF T <> AND OB(35, 0) = - 1 AND T/32 = INT(T/32) PRINT "M 

Y TORCH IS OUT." : OB(35, 0) = : OB(32, 0) = - 1 
2080 IF BI = 45 PRINT "THE SNAKE BITE! OH. ..NO..." : OB(12, 0) = 

: FOR I = 1 TO 1200 : NEXT I : GOTO 2710 
2090 IF CP <> 18 RETURN 

2100 IF GF = 1 PRINT "THE GATE IS OPEN" ELSE PRINT "THE GATE IS 
LOCKED. " 

2110 IF NM = AND M3 = AND MF = 1 PRINT "I HAVE NO MORE MATCH 

ES." : M3 = 1 : 06(34, 0) = - 1 : OB(33, 0) = : M3 = 1 
2120 RETURN 

2130 PRINT "WHAZZAT?" : RESUME 110 

2140 POKE 16553, 255 : NN = 36 : NV = 32 : P = 38 : LO = 36 : DI 
M P$(P), P(P, 3), OB$(LO), OB(LO, 1), VB$ (NV) , N0$ (NN) 

2150 P$(l) = "I'M OUTSIDE AN ENORMOUS PYRAMID. AN OPENING LEADS 
IN TO 

THE EAST." 

2160 P$(2) 

2170 P$(3) 

2180 P$(4) 



DATA 0, 0, 5, 0,1 2, 7, 3, 6,1 3, 3, 8, 2 
"I'M IN THE ANNEX OF KING TUT'S TOMB." 
"I'M IN THE QUARTERS OF PRINCESS ANKA." 
"I'M IN KARMAK'S CATHEDRAL." : DATA 0, 8, 12, 0,}0, 
9, 0, I,' 2, 0, 0, 14 
2190 P$(5) = "I'M IN THE ENTRY CHAMBER TO KING TUT'S TOMB." 
"I'M IN A TWISTING CORRIDOR" 

"I'M IN THE JEWELRY CHAMBER." : DATA 0, 7, 7, 2 
"I'M IN THE ARTIST'S STUDIO." : DATA 4, 0, 0, 3 
"I'M CRAWLING OVER A JUMBLE OF BROKEN ROCK." : DATA 
9/ 13, 5, ( 

2240 P$(10) = ''I'M IN A LABYRINTH OF PASSAGES DESIGNED TO KEEP 

UT TOMBROBBERS" : DATA 10, 15, 11, 10 
2250 P$(ll) = P$(10) : DATA 11, 16, 11, 10 

"I'M IN AN EGYPTIAN LIBRARY." : DATA 0, 17, 4, 7 
"I'M IN AN AWKWARD N/S PASSAGEWAY." 



2200 P$(6) 
2210 P$(7) 
2220 P$(8) 
2230 P$(9) 



2260 P$(12) 
2270 P$(13) 

0, 
2280 P$(14) 
2290 P$(15) 
2300 P$(16) 
2310 P$(17) 

2, 22, 0, 
2320 P$(18) 

E DOOR 
LEADING SOUTH 
23 30 DATA 18, 
2340 P$(19) = 
2350 P$(20) = 
2360 P$(21) = 
2370 P$(22) = 



DATA 9, 21, 



= P$(6) : DATA 14, 20, 14, 6 
= P$(10) : DATA 10, 18, 15, 15 
= P$(10) : DATA 11, 16, 19, 16 

= "I'M IN A WINE CLOSET. (ALL CHEAP STUFF)" : DATA 1 



= "I'M AT THE END OF THE MAZE. THERE IS A GATE ON TH 



37, 15, 
P$ (10) 
P$(6) : 
"I'M IN 



18 



19 







D 



DATA 19, 23, 16, 
DATA 14, 0, 0, 24 
A GAME ROOM." : DATA 13, 24, 0, 
"I'M IN A BEDROOM DESIGNED FOR THE AFTERLIFE." 
ATA 17, 0, 27, 27 
2380 P$(23) = "I'M IN SLAVES' QUARTERS A." : DATA 19, 26, 0, 
2390 P$(24) = "I'M AT THE WEST END OF A TEMPLE." : DATA 20, 0, 2 
5, 21 

2400 P$(25) = "I'M IN THE EAST END OF THE TEMPLE." : DATA 25, 0, 
0, 24 

2410 P$(26) ■ "I'M IN THE WARRIORS' QUARTERS." : DATA 23, 30, 27 
, 



194 BASIC Adventures 



King Tut's Tomb 



2420 


P$(27) •■ 


_ 


'I 


•m 


IN 


A STABLE." : DATA 0, 31, 22, 






2430 


P$(28) « 


_ 


'I 


•m 


IN 


THE HIGH PRIEST'S CHAMBER." : DATA 0, . 


*5 




29 


r 
















2440 


Ps> \£y ) 


_ 


X 


rl 


T N 

X IN 


THF CHAMBFR OF ISIS." : DATA 30, 0, 29 


r 


28 


2450 


d<; ( 1 (a \ 




" T 




T N 

X IN 


SLAVES' OUARTERS B." : DATA 26, 33, 31 


r ' 


29 


2460 


P$ (31) 




" T 
1 


rl 


T M 
± IN 


THE ANTECHAMBER." : DATA 27, 32, 0, 30 






2470 


P9 




■ T 
X 




AT 


THE ROYAL THRONE." : DATA 0, 0, 0, 31 






2480 


P9 ( j j ; 




X 


rl 


T N 
X IN 


THE STORE ROOM." : DATA 0, 0, 36, 30 






2490 


PS ( ^4 ) 




1 


' M 

ri 


T NI 
X LN 


A MIRROR ROOM." : DATA 34, 35, 34, 34 






2500 


P$ ( 35 ) 




"I 


•m 


T Kl 
X IN 


THE KING'S HAREM." : DATA 28, 0, 3b, J4 




2510 


DC i 1 C \ 

Pi? ( jd ; 




"I 


1 M 


X L» 


A SNAKE PIT." : DATA 0, 0, 33, 36 






2520 


P$(37) 


— 


"I 


' M 


IN 


THE BURIAL CHAMBER." : DATA 18, 0, 0, 







2530 


DATA 37 


t 


0. 





, 








2540 


FOR I = 


1 


TO 


P : 


FOR J = TO 3 : READ P(I, J) : NEXT J 


t 


I 


2550 


DATA 5, 


5 


r 


21 


, 


, 24, 10, 25, 5, 34, 10, 35, 10, 2, 15, 


3 




5, 


7, 10, 


11 


, 


1(2 


1, 33, 5, 0, 0, 1, 0, 36, 0, 8, 10, 12, 0, 


0, 






2560^DATa' AN^OPAl' DRINKING CUP, A STEVE MARTIN POSTER, A GOLD CH 



S. A GOLDEN KEY, A GOLDEN BURIAL MASK, A DIAMOND HEADRESS 
2570 DATA A PLATINUM SPEAR, A RUBY EARRING, AN A^BASTER NECKLAC 
E, A GIANT PEARL, AN ALABASTER LAMP, A TAME SNAKE, A PACKAGE 

2580 F DA?A A FIERCE SNAKE, A ^DE STATUETTE THE BOOK OF THE DEAD 
A CRYSTAL GOBLET, A GLASS MEDALLION, AN IVORY THRONE , A nunn 

2590 O FOrT= I 1 TO 20 : READ OB(I, 0) : READ OB(I, 1) : NEXT 
2600 FOR I = 1 TO 20 : READ OB$(I) : NEXT 

2610 DATA 28, 15, 0, 0, 1. 0/ 1 • « ' - ?• »' , 

2620 FOR I = 30 TO 36 : READ OB (I, 0), OB (I, 1) : N ^ CIENT T0 

2630 DATA AN IVORY SARCOPHAGOUS, -------r-"":"'^^ " qOBLE 

RCH, SOME MATCHES, AN EMPTY MATCHBOX, A SHINING TORCH, A GOBLE 

T OF W I N E 

ES, N, S, E, W, GOO, SAR, GAT, TOR 
2660 DATA MAT, BOX, TOR, WIN, GO, GET, L00 ' INV ' ° ^ ' UNL ^ 

SAV, LOA, QUI , OPE, LOC , REA, EAT, FEE, KIL, HIT, SAY, UNL, 

2670 DATA SHO, DRI , BRE , LIG, FIG, DES TRA, BUR VAL. THR 
2680 FOR I = 1 TO NN : READ NO$(I) : NEXT : FOR I 1 
AD VB$ (I) : NEXT 

OUR NAME"; NA$ : NA$ = NA$ + "/AN3:1 : GOTO 30 
2710 X = X + 1 

2 2 7 7 2 3 P N R^T^ T 0°mEG0 3 SH; "o"'^^ ^U^ KXLLEOr; ^ 
2740 PRINT "THE BOSS WON'T LIKE THIS... NOT UNL bi i . 



King Tut's Tomb 



BASIC Adventures 195 



2770 IF LEFT$(R$, 1) = "N " THEN 1660 

2780 PRINT "NOW WHERE DID I PUT MY ORANGE SMOKE? I SEEM TO REMEM 

BER" : PL(0) = PL(0) - 20 
2790 PRINT "LEAVING IT IN A SARCOPHAGOUS SOMEWHERE. AH HERE IT I 

S." : GOTO 790 

2800 PRINT "OH BOY . YOU REALLY DID IT THIS TIME! I CAN'T BELIEVE 
IT." 

2810 PRINT "I'M FRESH OUT OF ORANGE SMOKE!!!!" 

2820 INPUT "YOU DON'T EXPECT ME TO PERFORM A DECENT REINCARNATIO 
N WITH NO MORE ORANGE SMOKE LEFT DO YOU"; R2$ 

2821 IF LEFT$(R2$, 1) = "Y" PRINT "HUH! WHO DO YOU THINK YOU ARE 
, A WIZARD!? DO IT YOURSELF!!" : END 

2830 GOTO 1660 




196 BASIC Adventures 



King Tut's Tomb 



Chapter Thirteen 

Voyage to Atlantis 
by Greg Hassett 



^ADV^NTUrI" ! rs S : .. PRINT CHR ?(23) : A$ = » VOYAGE TO ATLANTIS 
STEP 64 6 * GREG HASSETT" : FOR I = 64 TO 448 

11 PRINT@ I - 64, " „ 

2 A DE F i N T R A NT V 60 * ^ fi 5 : FOR J = ! TO 50 : NEXT J ,1^ 
n ? A - Z : DEFSTR M : M0 = »i DON'T SEE IT HPRP « . mi 

S^SLS"""? IT '" : M2 = " W0N ' T LET = "d6n?t BE 

"^30 GOSM B "f«' T ^L FUNNY -" : M6 = "OKAY . " : GOTO 1740 

B = 1 OR VB ! = 27) B vI = ! l IF N ° < 9 N ° ° AN ° (VB = 0R V 

40 IF VB - 15 AND VB - 16 AND VB - 5 AND VB - 6 AND LENfNlS* s a 

sT: N GOTO 30 RINT D °"' T KN ° W WHAT " CHR$ < 34 >^ ""S {II) » J 
50 IF Nl$ = AND (VB > 8 OR VB = 2) AND VB <> 22 AND VR <■> , s 
_60 GOTO B 360 ^ PRINT " PLEASE SUPPLY DIRECT OwlcT™, 30 

78 DO«; T : + INPUT P cT @ 960 ' " '* CHR$(94) ' " WHAT S « ^ I 

80 IF LEN (CM$ ) = THEN 70 
90 VB$ = : N0 $ = »•• : VB = • N0 = 

^V^f ! VB $ F ° + R U'SJSil - A$ = MID$(CM$ < » ' - 

\\l mL LEN<VB$) + 1 >= LEN (C"S) NO = : GOTO 130 
120 NO$ = RIGHT$(CM$, LC - I) 

13 $ N 3f • for ^ V1 f :/ B$ ! V6$ = LEp T$<VB$, 3) : NO$ = LEFTS (NO 
60 e'lSE NEXtY/v^ " " VB$ = VB$U) THEN VB " 1 "GOTO " 
140 IF Nl$ = N0 $ = VB$ 
150 VB = : GOTO 170 

160 IF VB$ = CM$ THEN = : NO$ = "» • rptmrw 

^NEXtY^ND LI' - N ° $(I > ™ I • RETURN ELSE 

g^w&Ai 1 . NO - : NO$ = "" : RETURN 

T80 PRINTS 0, CHR$(30) : PRINT : PRINT : PRINT : PRINT • PRINT 

(CP,) I?* 5?7f*«fc 15.- « = ^(pSSpI.'Sh 

190 IF CP = 29 Fl = 1 ELSE IF CP = 31 F2 = 1 
200 IF CP = 51 F4 = 1 ELSE IF CP = 6 F3 = 1 
210 P$ = -I'M IN " + P$(CP) 

"i'r-.'cRo'aK F'OR 3 ! 1 '- } TO 7 fl i fl CLS = PRINT@ 448 ' "HELP! NO A 

J.r\. . . LnUrtA . . tUR I = 1 TO 1000 • NFYT T . mwr\ i c a n 

230 PRINT@ 64, P $ ■' . » : K = : FOR I ff T0 LO iV Ob!i B1 <> 
CP THEN 270 W * 0B (lf 0) <> 

240 IF K = PRINT " 
VISIBLE ITEMS: 

250 IF 3 + POS(0) + LEN (OB$ (I) ) > 63 PRINT 
260 PRINT OB$(I)«. »; : K = K + 1 
270 NEXT I : IF K > PRINT 

290 K F =°0 T PRINTS STRING$(63 < 14 <» « ""URN 

OBVIOUS EXITS ARE: '■ ; : FOR I = TO 3 : IF P(CP, I) = THEN 32 

300 IF K > PRINT ", M ; 
310 PRINT D$ (I) ; : K = K + I 



198 BASIC Adventures 



Voyage to Atlantis 



320 NEXT I : PRINT " : IF ZZ < 2 OR CP <> 5 THEN 350 ELSE FOR 
I = 1 TO LO 

330 IF OB(I, 0) = - 1 AND I <> 31 OB(I, 0) = 29 

340 NEXT I : PRINT "THE WHIRLPOOL SUCKED ALL MY BELONGINGS DOWN ! 
! ! " : ZZ = 1 
yV350 PRINT STRING$(63, 140) : RETURN 

J^*lf>® ON VB GOTO 380, 450, 30, 570, 610, 670, 730, 750, 760, 820 , 
830, 950, 960, 1060, 1070, 1090, 1500, 1100, 1140, 1210, 1230, 
2230, 1290, 1330, 1370, 450, 380, 1400, 1430, 1460 
370 PRINT "I NEVER LEARNED HOW TO " CHR$(34)V1$ CHR$(34)" SOMETH 
^ING." : GOTO 30 

380 IF NO = PRINT "I NEED A DIRECTION." : GOTO 30 
390 IF NO > 8 THEN 1290 
400 IF NO > 4 NO = NO - 4 

410 NO = NO - 1 : IF P(CP, NO) = PRINT "THERE IS NO WAY TO GO 

IN THAT DIRECTION." : GOTO 30 
420 IF CP = 30 AND GF = PRINT "THE GATE IS LOCKED." : GOTO 30 
430 IF CP = 25 AND NO = AND GF = PRINT "THERE IS A GATE THAT 

BARS MY WAY. IT IS LOCKED." : 
440 PRINT "OKAY, I WENT "D$ (NO) " 
~~ '0 IF CP <> OB(NO, 0) PRINT M0 





GOTO 30 

" : CP = P(CP, NO) 



GOTO 30 



GOTO 30 

'460 IF NO = 10 OR NO = 13 OR NO ■ 14 OR NO = 16 OR NO = 18 OR NO 

- 22 OR NO = 36 PRINT M5 : GOTO 30 
470 IF NO = 27 OR NO - 29 PRINT "IT IS TOO HEAVY." : GOTO 30 
480 IF NO = 17 AND OB (16, 0) = CP PRINT "MANTA"M2 : GOTO 30 
490 IF NO = 19 AND OB(18, 0) = CP PRINT "SQUID"M2 : GOTO 30 
500 IF NO = 35 AND OB(36, 0) = CP PRINT "OCTOPUS"M2 : GOTO 30 
510 IF OB(10, 0) = CP PRINT "EE L"M2 : GOTO 30 

520 IF NO = 44 AND OB (42, 0) = CP PRINT "MINOTAUR"M2 : GOTO 30 

530 IF NO = 32 PRINT "IT IS BEYOND MY REACH." : GOTO 30 

540 IF ZZ + -1 > 7 PRINT "I'M CARRYING TOO MUCH. CLUE: DROP SOMET 

HING." : GOTO 30 
550 IF OB(NO, 1) > AND CP = 1 TS = TS - 1 
560 ZZ = ZZ + 1 : OB(NO, 0) = - 1 : PR-INT M6 : GOTO 30 
570 IF ZZ = PRINT "I'M NOT CARRYING ANYTHING." : GOTO 30 ELSE 

PRINT "CURRENTLY I'M CARRYING: "; : FOR I = 1 TO LO : IF OB(I, 
0) <> - 1 THEN 600 
580 IF 3 + POS(0) + LEN(OB$(I)) > 63 PRINT 
590 PRINT OB$ (I) ". "; 
600 NEXT I : PRINT : GOTO 30 
610 IF (NOT BT) AND Nl$ = "" Nl$ = NA$ 

620 CLS : PRINT "SAVING..." : IF (NOT BT) OPEN "0", 1, Nl$ 
630 FOR I = 1 TO LO : IF BT PRINT#-1, OB (I,. 0) ELSE PRINT# 1, OB 
(I, 0) 

640 NEXT I : IF BT PRINT#-1, CP, GF, ZZ, Fl, F2, F3, F4 , T, OB ( 3 
4, 1), OB(37, 1), NO$(22), OB$(34), OB$(37) ELSE PRINT* 1, CP; 

GF; ZZ; Fl; F2; F3; F4; T; OB(34, 1), OB(37, 1), NO$(22); "," 
; OB$(34); ","; OB$(37) 

650 IF BT = CLOSE 

660 GOTO 30 

670 IF (NOT BT) AND Nl$ = ""Nl$ = NA$ 



680 CLS 
Nl$ 

690 FOR I = 1 TO LO 
(If 0) 



PRINT "RESTORING "Nl$ 



IF (NOT BT) OPEN "I" , 1 , 



IF BT INPUT#-1, OB(I, 0) ELSE INPUT# 1, OB 



Voyage to Atlantis BASIC Adventures 199 



700 NEXT I : IF BT INPUT#-1, CP, GF, ZZ, Fl, F2, F3, F4, T, 0B(3 

4, 1), OB(37, 1), N0$(22), OB$(34), OB$(37) ELSE INPUT# 1, CP 
GF, ZZ, Fl, F2, F3, F4 , T, OB(34, 1), OB(37, 1), NO$(22), 0B$ 
(34), OB$(37) 

710 IF (NOT BT) CLOSE 

720 GOTO 30 

730 SC = : FOR I = 1 TO LO : IF OB(I, 0) = 1 SC = SC + OB(I, 1 

740 NEXT I : PRINT "YOU HAVE " SC" POINTS OUT OF A MAXIMUM OF 170 
PLUS, YOU CAN GET A BONUS UP TO 30 POINTS WHEN YOU QUIT, MAKING 
THE ACTUAL MAXIMUM 200." : GOTO 30 

750 INPUT "DO YOU REALLY WANT TO QUIT NOW"; X$ : IF LEFT$ (X$ 1) 

= "Y" THEN 1500 ELSE PRINT "I DIDN'T THINK SO." : GOTO 30' 
760 IF OB(NO, 0) <> - 1 PRINT Ml : GOTO 30 

770 IF NO <> 34 PRINT "SORRY, I CAN ONLY THROW THE SPEAR." : GOT 
30 

780 IF OB(9, 0) <> - 1 OR (OB(36, 0) - CP AND CP - OB(42, 0)) PR 
INT "THE SPEAR VANISHED IN MIDAIR." : ZZ = ZZ. - 1 : OB(34 0) 
= : GOTO 30 

790 IF CP - 4 THEN 810 

800 PRINT "THE SPEAR PLUNGES INTO THE OCTOPUS' HEART AND THEN VA 
NISHES 

ALONG WITH THE OCTOPUS! Mi" : OB(36, 0) = : OB(34, 0) = 51 • 7 
Z = ZZ - 1 : GOTO 30 * 
810 PRINT "THE SPEAR HITS THE MINOTAUR, AND HE VANISHES ! 1 ! " : OB 
(42, 0) = : PRINT "THE SPEAR THEN TURNS TO PLATINUM!!!" : OB 
$(34) = ">>>A PLATINUM SPEAR<<<" : OB(34, 1) = 11 : OB(34, 0) 
= CP : ZZ = ZZ - 1 : GOTO 30 
820 PRINT "YOU'LL HAVE TO BE MORE SPECIFIC." : GOTO 30 
830 IF OB(NO, 0) <> - 1 AND OB(NO, 0) <> CP PRINT M0 : GOTO 30 
840 IF NO - 43 AND NO - 11 AND NO - 12 AND NO - 17 AND NO - 21 A 
ND NO - 28 AND NO - 32 AND NO - 38 PRINT "THERE IS NO WRITING 
THERE • " 

850 PRINT "IT SAYS:" 

860 IF NO = 11 PRINT "WHAT IS THOUGHT TO BE, ISN'T WHAT YOU SEE • 
NORI" 

870 IF NO = 12 PRINT "CAPTAIN AHAB WAS HERE." 

880 IF NO = 17 PRINT Rl$ : PRINT R2$ : PRINT "SCRAPE IRON. NORI" 
890 IF NO = 21 PRINT "LEE SAID POW AND DIED." 

900 IF NO = 28 PRINT "USE CRUST TOOTHPASTE FOR SHARPER TEETH. (S 
NAP! ) 

SQUIDS HATE LOUD NOISES ( W P T N )" 

910 IF NO^= 32 PRINT "BRING >»TREASURES«< HERE & DROP THEM. SA 
Y SCORE 

920 IF NO = 43 PRINT "BEWARE THE FIERCE MINOTAUR! MINOS WAS AN E 
VI L KING! ! " 

930 IF NO = 38 PRINT "PUT SHOT IN GUN." 
940 GOTO 30 

950 PRINT "USE COMPASS POINTS, PLEASE." : GOTO 30 

960 IF NO - 40 AND NO - 35 AND NO - 14 PRINT "I DON'T KNOW HOW T 

OPEN SUCH A THING." : GOTO 30 
970 IF NO = 40 PRINT "TRY UNLOCK GATE." : GOTO 30 
980 IF NO <> 35 THEN 1030 

990 IF OB (26, 0) <> - 1 PRINT "YOU DON'T HAVE THE NECESSARY RESO 
URCES." : GOTO 30 



200 BASIC Adventures 



Voyage to Atlantis 



1000 IF OB (36, 0) = CP PRINT "0CT0PUS"M2 : GOTO 30 

1010 IF OB(38, 0) <> PRINT "OK. IT'S EMPTY." : GOTO 30 

1020 PRINT "OK. TWO THINGS FALL OUT! (TRY 'LOOK')" : OB(38, 0) = 

CP : OB(39, 0) = CP : GOTO 30 
1030 IF OB(33, 0) <>-l PRINT "YOU DON'T HAVE THE RIGHT TOOLS!" 

: GOTO 30 

1040 IF OB(37, 0) <> PRINT "THE CLAM OPENS AND SHUTS. IT'S EMP 
TY." : GOTO 30 

1050 PRINT "THE CLAM FLIES OPEN AND SOMETHING FALLS OUT, BUT IT 
SNAPS SHUT 

AGAIN!!! TRY 'LOOK'." : OB(37, 0) = CP : GOTO 30 

1060 PRINT "I'M NOT THE DESTRUCTIVE TYPE MYSELF..." : GOTO 30 

1070 IF OB (18, 0) <> CP PRINT "NOTHING HAPPENED." : GOTO 30 

1080 PRINT "THE SQUID WAS SO STARTLED HE RAN AWAY!!!" : 0B(18, 

) = : GOTO 30 
1090 PRINT "OKAY..."; Nl$ : GOTO 30 

1100 IF NO <> 29 PRINT "I KNOW NOT HOW TO LOAD SUCH A THING. SAY 

RESTORE TO START UP 
A SAVED GAME." : GOTO 3 
1110 IF CP <> 12 PRINT M0 : GOTO 30 

1120 IF OB(20, 0) <> - 1 PRINT "I HAVE NOTHING TO LOAD IT WITH!! 
" : GOTO 30 

1130 PRINT "OK." : OB(20, ) = - 2 : ZZ = ZZ - 1 : GOTO 30 

1140 IF NO - 10 AND NO - 14 AND NO - 16 AND NO - 18 AND NO - 22 

AND NO - 23 AND NO - 36 PRINT M3 : GOTO 30 
1150 IF NO - 22 AND NO - 16 PRINT "IT'S NOT HUNGRY." : GOTO 30 
1160 IF NO = 16 THEN 1190 

1170 IF OB(30, 0) <> - 1 PRINT "I HAVE NO FOOD!!!" : GOTO 30 

1180 PRINT "THE PIRANHAS GULP DOWN THE CUP AND. . .MUCH TO THEIR S 
UPRISE. . . 

THEIR TEETH FALL OUT!!! THEY ARE NOW RENDERED HELPLESS. TRY 
'LOOK' ." 

1181 OB(22, 0) = : OB(23, 0) = CP : NO$(22) = " ' " : OB(30, 0) 
= : ZZ = ZZ - 1 : OB(2'4, 0) = CP : GOTO 30 

1190 IF OB(23, 0) <>-l PRINT "HE LIKES THE IDEA... AND EATS ME 
UP!!! I'M DEAD." : FOR I = 1 TO 1500 : NEXT I : GOTO 1500 

1200 PRINT "THE MANTA SWALLOWS UP THE PIRANHAS AND SWIMS AWAY." 
: ZZ = ZZ - 1 : 0B(16, 0) = : OB(23, 0) = : GOTO 30 

1210 IF OB(25, 0) <> - 1 PRINT "I HAVE NO SCISSORS." : GOTO 30 

1220 PRINT "THE SCISSORS ARE TOO DULL TO CUT ANYTHING." : GOTO 3 


1230 IF NO - 40 AND NO - 35 PRINT "HOW?" : GOTO 30 
1240 IF NO = 35 PRINT "TRY OPEN." : GOTO 30 
1250 IF CP - 25 AND CP - 30 PRINT M0 : GOTO 30 
1260 IF GF = 1 PRINT "IT IS ALREADY OPEN!!!" : GOTO 30 
1270 IF OB(26, 0) <> - 1 PRINT "YOU DON'T HAVE THE KEY." : GOTO 
30 

1280 PRINT M6 : GF = 1 : GOTO 30 

1290 IF NO <> 27 PRINT "HOW?" : GOTO 30 

1300 IF CP <> 9 AND CP <> 31 PRINT M0 : GOTO 30 

1310 IF CP = 9 CP = 31 ELSE CP = 9 

1320 GOTO 30 

1330 IF NO <> 29 PRINT "HOW?" : GOTO 30 
1340 IF CP <> 12 PRINT M0 : GOTO 30 

1350 IF OB(20, 0) <> - 2 PRINT "IT'S NOT LOADED." : GOTO 30 



Voyage to Atlantk 



BASIC Adventures 201 



A 



1360^PRINT M6"..P0W!M!" : OB(20, 0) = 29 : OB(10, 0) = : GOTO 

1370 IF NO <> 30 PRINT "COME NOW... BE SERIOUS." : GOTO 30 
1380 IF OB(30, 0) <> - 1 PRINT Ml : GOTO 30 

1390 PRINT "SMACK! GOOD!" : ZZ = ZZ - 1 : OB(30, 0) = : GOTO 3 
1400 IF OB(NO, 0) <> - 1 PRINT Ml : GOTO 30 

i4 K,n Z ?xV5 I 1 : PRINT M6 : °*WO> 0) = CP : IF CP = 1 AND OB ( 
NO, 1) > TS = TS + 1 K 

1420 GOTO 30 

1430 IF OB(NO, 0) <> - 1 AND OB(NO, 0) <> CP PRINT M0 : GOTO 30 
1440 IF NO <> 37 PRINT M6" NOTHING HAPPENED." : GOTO 30 
1450 PRINT "WAIT A MIN UTE . . . THI S STATUETTE ISN • T IRON . . . IT • S GOL 
DU" : OB$(37) = ">>>A GOLD STATUETTE<<< " : OB(37, 1) = 16 • G 
OTO 30 * 

1460 IF CP <> 31 PRINT "GEE! FUN!" : GOTO 30 
1470 X = RND ( 4 ) : IF X = 2 THEN 1490 
1480 CP = 9 : GOTO 30 

1490 PRINT "WHOOOOOOOA...THUD. I'M DEAD." : FOR I = 1 TO 1000 
NEXT I : GOTO 1500 * 

1500 CLS : GOSUB 1690 : FOR I = 1 TO LO : IF ABS(OB(I, 0)) = 1 F 

S = FS + OB (1 , 1) 
1510 NEXT I : IF T < 500 FS = FS + 5 
1520 IF T < 400 FS = FS + 5 
1530 IF T < 310 FS = FS + 10 

1540 PRINT "YOU SCORED"FS"POINTS OUT OF 200." : IF FS = PRINT 
YOU ARE A PEE WEE CLASS ADVENTURER (THE LOWEST RANK) " : GOTO 
1630 

^n™ 1 ?*™ < 30 PRINT " ARE Y0U VEG£ TABLE OR MINERAL? RANK 8" : G 
U 1 16 30 

1560 IF FS < 50 PRINT "NOT TOO GOOD, PAL! RANK 7" : GOTO 1630 

" . ™ PRINT " Y ° U " AVE HAD A TASTE OF ADVENTURE . RANK 6 

• uUiU 1630 

lb l\)« f S GOTO 1 16!s0 INT " Y ° U A MASTER ADVENTURER CLASS C (RAN 

15 K 4) IF f S GOTO 5 1630 INT *** A MASTER ADVENTURER CLASS B (RAN 

16 K 3) IF FS GOTO 7 16 P INT " Y ° U ARE A MASTER ADVENTURER CLASS A (RAN 
^ ^ADVENTURER " W ° WEE! Y0U ARE GREAT! YOU'LL SOON BE AN 

GRANDMASTER! ONE RANK AWAY... RANK 2" : GOTO 1630 

1620 IF FS < 201 PRINT "TUM TUM-TUM TUM...TUM TE TUM TE DUM DE T 
UM. . . 

L R D^^^ D ^ ?Sfn G !^ ANDMASTER -• 60Y ° H B0Y1 CAN 1 SHA «E YOUR 
HAND??? YOU SHOULD "; : PRINT Rl$ : PRINT R2$ 

1630 PRINT : PRINT : PRINT "PLAY AGAIN (Y/N) " 

1640 A$ = INKEY$ : IF A$ = "Y" OR A$ = "N" THEN 1660 

1650 GOTO 1640 

1660 IF A$ = "Y" RUN 

1670 END 

1680 CLS : END 

1690 IF Fl LET FS = FS + 2 

1700 IF F2 LET FS = FS + 2 



202 BASIC Adventures 



Voyage to Atlantis 



1710 IF F2 LET FS = FS + 2 
1720 IF F3 LET FS = FS + 4 
1730 RETURN 

1740 CP = 1 : NP = 51 : LO = 44 : NN = 44 : NV = 30 : DIM P$ (NP) 
, P(NP f 3), OB(LO, 1), OB$(LO), NO$(NN), VB$ (NV) : FOR I = 1 T 
31 : FOR J = TO 3 : READ P(I, J) : NEXT J, I 

1750 PRINTS 640, j : A$ = "NEW IMPROVED VERSION !!" : FOR I = 1 T 
LEN ( A$ ) : PRINT MID$(A$, I, 1); : X = SQR(9999) : NEXT I 

1760 P$(l) = "MY SUBMARINE DOCKED IN THE CITY OF ATLANTIS" : P$ ( 
2) = "A CORRIDOR FILLED WITH WATER" : P$(3) = "AN ALCOVE" 

1761 P$(4) = "A CORAL REEF" : DATA 0, 0, 2, 0,1 8, 0, 3, 1,1 9, 0, 
4, 2, |10 # 0,5,3 1 

1770 P$(5) = "A WHIRLPOOL" : P$(6) = "THE HALL OF SPIRITS (MORE 
COMMONLY CALLED A GRAVEYARD)" : P$,(7) = "*DEAD, END" 

1771 P$(8) = "A DINING ROOM" : DATA 11, 0, 0, 4,/ 13, 0, 7, 0, 0, 
8, 0, 0, 7, 2, 9, ' 

1780 P$(9) (= "*I'M ON THE STREET" : P$(10) = "*I'M AT THE END OF 
THE STREET" : P$(ll) = "A DARK CAVE" j 

1781 P$(12) = "THE FORTRESS OF ATLANTIS" : DATA 15, 3, 10, 8j 0, 
4, 11, 9,(0, 5, 12, 10, f 0, 0, 0, 11 

1790 P$(13) = "CAPTAIN AHAB'S QUARTERS" : P$(14) = "A BARREN CHA 
MBER" : P$(15) = "A BARBER SHOP" j 

1791 P$ (16) = "AN OLYMPIC FIELD" : DATA 16, 6, 0, r 17, 0, 15, 
0, I 0, 9, 0, 14, 22, 13, 17, 

1800 i P$(17) = "A SUPPLY ROOM" : P$(18) = "THE SQUID'S CHAMBER" : 

P$(19) = "THE DRAWING ROOM" 
1801 P$(20) = "THE ROYAL COLISEUM" : DATA 23, 14, 18, 16, 24, 0, 

19, 17, 25, 0, 20, 18, |0, 0, 21, 19 

1810 P$(21) = "A TEMPLE" : P$(22) = "HALLWAY" : P$(23) = "OLD LI 
BRARY" 

1811 P$(24) = "THE CLAM ROOM. THE WALLS ARE MADE OF CLAMSHELL" : 
DATA 26, 0, 0, 20, (27, 16, 0, 0,f0, 17, 24, 0, 29, 18, 0, 23 

1820 P$(25) = "A RAIL* STATION (SO >THIS< IS HOW THEY GOT AROUND! 
)" : P$(26) = P$(24) : P$(24) = "THE TOWN HALL" 

1821 P$(27) = "THE KITCHEN." .: P$(28") = "THE DINING HALL" : DATA 
30, 19, 0, 0, 0, <ft> 0, 0,f 0, 22, 28, 0,1 0, 0, 0, 27 

1830 P$(29) = "THE EtrECTRIC EEL'S ROOM" : P$(30) = "THE JAIL. TH 
ERE IS A GATE TO THE SOUTH" 

1831 P$(31) = "AT THE TOP OF A POST. LOOKING DOWN I SEE ONLY THE 

STREET. THE WATER IS TOO MISTY TO SEE FAR AWAY" 

1832 DATA 0, 0, 30, ,1 , 25, 0, 0,( 0, 0, 0, 

1840 DATA N, S, E, W, NOR, SOU, EAS , WES, THR, EEL, BOO, PAP, TR 
A, CLA, MED, MAN, PLA, SQU, COI , SHO, JOU, PIR, PIR, TEE, SCI, 

KEY 

1841 DATA POS, NEW, CAN , CUP, TAN, SIG, PIC, SPE, CHE, OCT, STA, 
NOT, PEA, GAT,|gO, GET, LOO, INV, SAV , RES, SCO, QUI, THR, KI 

L V 

1842 DATA REA, ENT, OPE, HIT, YEL, SAY, " , LOA, FEE, CUT, UNL, H 
EL, CLI, FIR, EAT 

1850 FQR I = 1 TO 40 : READ NO$(I) : NEXT I : FOR I = 1 TO NV : 
READ VB$ (I) : NEXT I : DATA TAK, SWI , DRO , SCR, J UM 

1860 DATA A SPEAR THROWER, AN ELECTRIC EEL, A SMALL BOOK, A PAPE 
R WITH WRITING ON IT, A, A GIANT CLAM, >>>A JADE MEDALLION<<< 

1861 DATA A BLACK MANTA, >>>A PLATINUM PLAQUE<<<, A GIANT SQUID, 
>>>MANY COINS<<<, AN IRON SHOTPUT, CAPTAIN AHAB'S JOURNAL 



Voyage to Atlantis 



BASIC Adventures 203 



1870 DATA SOME FIERCE PIRANHAS, SOME HELPLESS PIRANHAS, >>>SOME 
VALUABLE PIRANHA TEETH<<< , >>>A PAIR OF GOLD SCISSORS<<< 

1871 DATA >>>A SILVER KEY<<<, A TALL POST, AN OLD NEWSPAPER, AN 
OLD CANNON, A PEANUT BUTTER CUP 

1872 DATA AN AIR TANK, A SIGN, >>>A PLATINUM PICK<<<, A STEEL SP 
EAR 

1880 DATA A TREASURE CHEST, A FIERCE OCTOPUS, AN IRON STATUETTE 
A NOTE ' 

1881 DATA >>>A GLISTENING PEARL<<<, 27, 0, 29, 0, 23, 0, 24, 
0, 0, 26, 0, 20, 10, 19, 0, 19, 15, 18, 0, 18, 20, 16, 0, 13,' 
0, 14, 0, 0, 0, 0, 15, 15, 5, 8, 5, 9 

1882 DATA 0, 11, 0, 12, 0, 1, 0, 1, 0, 1, , 3 , 7, 3, 0, 4, 0, 4 
, 0, 0, 0, 0, 0, 0, 12 ' 

1890 FOR I = 9 TO 39 : READ OB$(I) : NEXT I : FOR I = 9 TO 39 

READ OB(I, 0) , OB(I, 1) : NEXT I 
1900 D$(0) = "NORTH" : D$(l) = "SOUTH" : D$(2) = "EAST" : D$(3) 

= "WEST" ' 
1910 IF PEEK(16396) = 201BT = - 1 ELSE BT = 

1920 P$(32) = "THE PILLARS OF HERCULES" : P(26, 0) = 32 : DATA 
r 26 , , 33 

1930 P$(33) = "PROMETHEUS' CHAMBER IN OLYMPIA" : P$(34) m "A STR 
ANGE ROOM WITH WALLS THAT SEEM TO COME ALIVE AS I 

MOVE ABOUT" 

1931 P$(35) = "*I'M ON THE EDGE OF A CLIFF. THE WATER BELOW ME I 
S TOO MISTY 

TO SEE FAR DOWN. THERE MIGHT BE LIFE DOWN THERE..." 

1940 P$(36) = "A DEEP, DARK, CORRIDOR. I CAN SEE NO CEILING FROM 
HERE , 

ONLY MURKY WATER. THE WATER SEEMS TO BE MOVING EAST OF ME 

1941 DATA 0, 34, 32, 0,)33, 36, 37, 35,( 0, 0, 34, 0,, 34, 0,'*5, 0| 

1950 P$(37) = "THE HALL OF MIRRORS. ALL DIRECTIONS LOOK THE SAME 
CORRIDOR"^ = P$(3?) : P$(39) = P$(3?) : P$(40) = " AN AWKWARD 

195 V A IV 7 ' 38 ' 39 ' 34 'h 7 ' 38 ' 38, 38, 140, 39, 39, 37,1 42, 39 
, , K r r ^ 

19 LY DESIGNED 4 BY T ° 50 ' = " A LABYRINTH 0F PASSAGES OBVIOUS 

KING MINOS. IT IS RUMOR THAT THE MINOTAUR IS NEAR 

1961 NEXT I : DATA 43, 41, 42, 41,1)44, 40, 42, 41J47 41 43 4 
3, [48, 42, 45, 44,] 4 9, 45, 45, 4*4,( 50, 51, 0, 0, 47 \\\ \l\ 4 
7,H8, 44, 48, 47, [0, 45, 50, 0,(0, 46, 49 4 1 

1970 P$(51) = " *DEAD END" : DATA 46, 0, 0, 

1980 FOR I = 32 TO NP : FOR J = TO 3 : READ P(I, J) : NEXT J, 

1990 FOR I = 41 TO NN : READ NO$(I), OB$(I), OB(I, 0), OB(I, 1) 
: NEXT I 1 ' ' 

2000 DATA APP, >»A GOLDEN APPLE<«, 33, 10, MIN, A FIERCE MINOT 

? ?' ' l\ AN ANCIENT SCROLL, 40, 0, FLE, »>A GOLDEN FL 

EECE<<<, 51, 44 

2010 Rl$ = "TRY SOME OTHER GREG HASSETT ADVENTURES THEY ARE • 
JOURNEY TO THE CENTER OF THE EARTH THE HOUSE Of'sEVEN GABLES 
ENTRY INTO KING TUT'S TOMB SORCERER'S CA^Tr P 

ENCHANTED ISLAND" 



204 BASIC Adventures 



Voyage to Atlantis 



2020 R2$ = "CALL MAD HATTER SOFTWARE TO PLACE AN ORDER 
(617)-682-8131" 

2030 IF BT = CLS : INPUT "WHAT IS YOUR NAME"; NA$ : NA$ = LEFT 

$ (NA$ , 8) + " / AN 5:1" 
2040 GOSUB 2050 : GOTO 30 
2050 CLS 

2060 PRINT "*** ADVENTURE VERSION 6.5 COPYRIGHT (C) 1980 BY GREG 
HASSETT ***" 

2070 PRINT "****** 22 ALGONQUIN RD, CHELMSFORD, MASSACHUSETTS, 

1824 ******" 
2080 PRINT 

2090 PRINT " WELCOME TO THE WONDERFUL WORLD OF ADVENTUR 

E i " 
2100 PRINT 

2110 PRINT "IN THIS " CHR$ ( 34 ) "ADVENTURE " CHR$(34)" YOU ARE TO E 

XPLORE THE LOST CITY ATLANTIS" 
2120 PRINT "IN SEARCH OF TREASURES. I WILL BE YOUR EYES AND HAND 

S DURING" 

2130 PRINT "THE ADVENTURE. DIRECT ME WITH ORDINARY ENGLISH SENTE 

NCES OF ONE" 
2140 PRINT "OR TWO WORDS. SOME EXAMPLES:" 

2150 PRINT CHR$(34)"GET TANK" CHR$(34)" , " CHR$ ( 34 ) " IN VENTORY " 
CHR$(34)" , " CHR$ (34) "KILL MANTA" CHR$(34)" , " CHR$ ( 34 ) "DROP 
COINS" CHR$(34) 
2160 PRINT 

2170 PRINT "USE ANY VERB/NOUN COMBINATION YOU CAN THINK OF, BECA 
USE IN THIS" 

2180 PRINT "GAME, *ANYTHING* GOES! IF THIS ADVENTURE IS TAKING Y 
OU A LONG" 

2190 PRINT "TIME TO SOLVE, DON'T FRET. IT WAS DESIGNED TO DO SO. 
TO SAVE A" 

2200 PRINT "GAME, TYPE " CHR$ ( 34) "SAVE" CHR$(34)". TO RESTORE A 

GAME, TYPE "; 
2210 PRINT CHR$ (34) "RESTORE" CHR$(34)". 

PRESS THE SPACE BAR TO BEGIN..."; 
2220 IF INKEY$ = "" THEN 2220 ELSE CLS : RETURN 

2230 PRINT "I CAN ONLY REPEAT THE INSTRUCTIONS. WOULD YOU LIKE T 
HAT"; : INPUT QQ$ : IF LEFT$ (QQ$, 1) = "N" PRINT "OKAY." : GOT 

30 

2240 GOSUB 2050 : GOTO 30 




Voyage to Atlantis 



BASIC Adventures 205 



Chapter Fourteen 



House of Seven Gables 




by Greg Hassett 



Note: The save game routine for this program is for 
tape only. Disk routines may be added by modifying 
lines 670 to 790. 



206 BASIC Adventures 



10 CLEAR 50 

20 DEFINT A - Z : DEFSTR A, R, Y 
30 CLS : PRINT CHR$ (23) 
40 PRINT "The House of Seven Gables" 
50 PRINT 

60 PRINT " By Greg Hassett" 

70 A = "I don't see it here." : R = "Don't be ridiculous." : Y = 
"I don't know that word." : CP = 2 : POKE 16553, 255 : GOTO 2 

550 

80 GOTO 2470 

90 IF RND(100) = 50 AND ZZ > 2 THEN 2150 

100 IF RND(40) ■ 1 AND CP <> 2 AND CP <> 5 AND CP <> 21 AND CP < 
> 41 THEN 2230 

110 GOSUB 2350 :MI=0:T=T+1:IFT=50 OB$(27) = *a tar 

nished old compass" 
120 IF NO > 40 NO = NO - 40 

130 IF VB <> 25 AND VB > 10 AND NO$ = "" INPUT "Give me an objec 

t"; N0$ : GOSUB 2440 
140 IF N0$ <> "" AND NO = AND VB = 1 PRINT "I don't understand 

that!" : GOTO 110 
150 IF T > 175 MI = MI - 10 
160 IF T > 255 MI = MI - 15 

170 IF NO = AND N0$ <> "" PRINT Y : GOTO 110 
180 IF VB <> 1 THEN 320 

190 IF VB = 1 AND NO$ - "" INPUT "Where"; NO$ : GOSUB 2440 
200 IF NO > 40 NO = NO - 40 

210 IF NO < 7 THEN 240 : ELSE AB% = OB (NO, 0) 

220 IF AB% > 10 AND AB% < 18) OR ABS (CP - AB%) > 3 OR CP = 2 OR 
AB% = PRINT "I don't know how to apply that word here." : GO 
TO 110 

230 CP = AB% : GOTO 80 

240 IF OB(27, 0) <> - 1 PRINT "I can't understand compass points 

without a compass!" : GOTO 110 
250 IF P(CP, NO - 1) =0 PRINT "There is no way to go in that di 

rection." : GOTO 110 
260 IF CP = 2 AND NO = 2 PRINT "The door is locked. I think I ca 

n get by it, though." : GOTO 110 
270 IF CP = 6 AND NO = 3 AND DF = PRINT "The door to that way 

is closed." : GOTO 110 
280 IF CP = 9 AND OB(9, 0) = 9 AND NO = 1 PRINT "The vampire won 

't let me go north!" : GOTO 110 
290 IF CP = 38 AND NO = 6 AND OB(18, 0) <> P(5, 0) = 2 
300 IF CP = 5 AND FF = 1 AND P(5, 0) = 2 AND NO = 1 CLS : PRINT 

"You made it!" : GOTO 2300 
310 CP = P(CP, NO - 1) : GOTO 80 
320 IF VB <> 2 THEN 480 

330 IF NO$ = "" INPUT "Get what"; OB$ : GOSUB 2440 
340 IF OB(NO, 0) = - 1 PRINT "I'm already carrying that!!!" : GO 
TO 110 

350 IF NO = 7 AND CP = 2 PRINT "It is impossible to remove." : G 
OTO 110 

360 IF NO = PRINT Y : GOTO 110 

370 IF OB(NO, 0) <> CP PRINT A : GOTO 110 

380 IF NO = 31 PRINT R : GOTO 110 



House of Seven Gables BASIC Adventures 207 



390 IF NO = 9 PRINT "You can't be serious]" : GOTO 110 

400 IF NO = 40 PRINT "I cannot pull it out of it's socket." : GO 

TO 110 ^ u 

410 IF NO = 14 PRINT "My, that's heavy. Too heavy to carry, in f 

act." : GOTO 110 

420 IF NO = 16 PRINT "It is in a big pot that I can't lift." : G 

OTO 110 ; • 

430 IF NO = 22 PRINT "Be serious." : GOTO 110 

440 IF NO = 26 PRINT "The cat vanished, saying "; CHR$(34); "I w 
ill return..."; CHR$(34) : OB(26, 0) = RND(40) : GOTO 110 

450 IF ZZ > 5 PRINT "I can't carry any more. Clue: Drop somethin 
g . " : GOTO 110 

460 ZZ = ZZ + 1 

470 OB (NO, 0) = - 1 : PRINT "You got it." : GOTO 110 
480 IF VB = 3 THEN 80 
490 IF VB <> 4 THEN 530 

500 ZZ = : PRINT "Currently, I am carrying:" : FOR I =8 TO LO 

: IF OB(I, 0) = - 1 PRINT OB$(I) : ZZ = ZZ + 1 
510 NEXT I : IF ZZ = PRINT "Nothing!" 
52 GOTO 110 
530 IF VB <> 5 THEN 580 

540 J = : FOR I = 1 TO LO : IF OB(I, 0) = 5 J = J + OB(I, 1) 
550 NEXT I : J = J + MI 

560^PRINT "Out of a maximum of 160 points, you have"; J; "points 

570 GOTO 110 

580 IF VB <> 6 THEN 650 

590 IF NO$ = "" INPUT "Drop what"; NO$ : GOSUB 2440 

600 IF OB(NO, 0) <> - 1 PRINT "I am not holding it." : GOTO 110 

610 PRINT "All right." 

620 ZZ = ZZ - 1 
630 OB (-NO, 0) = CP 
640 GOTO 110 

650 IF VB = 7 PRINT "I cannot give you help. It is against my re 

ligion. " : GOTO 110 1 
660 IF VB <> 8 THEN 730 

67.0 CLS : INPUT "Press <ENTER> when cassette preparations are ma 
de "; XX$ 

680 FOR I = 8 TO LO : IF OB$(I) = "" THEN 700 
690 PRINT#-1, OB (I, 0) 

700 NEXT I 

710 PRINT#-1, CP, FF, ZZ, T, P(5, 0), DF 

72 GOTO 110 

730 IF VB <> 9 THEN 800 

740 CLS : INPUT "Press <ENTER> when cassette preparations are ma 
de "; XX$ 

750 FOR I = 8 TO LO : IF OB$(I) = THEN 770 
760 INPUT#-1, OB (I, 0) 
770 NEXT I 

780 INPUT#-1, CP, FF, ZZ, T, P(5, 0), DF 

790 GOTO 80 

800 IF VB <> 10 THEN. 840 

810 INPUT "Do you really want to quit now"; QN$ 
820 QN$ = LEFT$ (QN$ , 1) : IF QN$ = "N" THEN 110 



208 BASIC Adventures 



House of Seven Gables 



830 GOTO 2300 

840 IF VB <> 11 THEN 910 

850 IF OB$(NO) = AND NO <> 7 PRINT R : GOTO 110 
860 IF NO = 7 THEN 890 

870 IF OB(NO r 0) <> - 1 PRINT A : GOTO 110 

880 IF NO <> 7 PRINT "I can't ring "OB(NO); "1!" : GOTO 110 

890 IF CP <> 2 PRINT "I see no bell here!" : GOTO 110 

900 PRINT "The door flies open and I am swept inside. 

The door vanishes, leaving no visible way out!" : PP ■ 1 i CP » 

5 : GOTO 110 
910 IF VB <> 12 THEN 980 

920 IF NO = 8 AND OB(10, 0) <> print "It is already full." i G 

OTO 110 

930 IF OB(NO, 0) <> - l print "I'm not holding it right now." t 

GOTO 110 

940 IF NO <> 8 AND NO <> 29 PRINT "I can't fill that!" t GOTO 11 



950 IF CP <> 3 PRINT "There is nothing to fill it with here." i 

GOTO 110 

960 IF NO = 29 PRINT "No, I value my life and that fluid that wa 
s in there might react with the water..." : GOTO 110 

970 IF NO = 8 PRINT "Your bucket is now full." : OB(8, 0) « I 
OB(10, 0) = - 1 : GOTO 110 

980 IF VB <> 13 THEN 1040 

990 IF NO <> 27 AND NO <> 26 AND NO <> 9 AND NO <> 13 AND NO <> 

31 PRINT "It isn't alivel" : GOTO 110 
1000 IF OB(NO, 0) <> CP PRINT A : GOTO 110 

1010 IF NO m 9 PRINT "I don't think it would approve." : GOTO 11 


1020 IF NO = 27 PRINT "It doesn't take too favorably to the idea 
." : GOTO 110 

1030 PRINT "You'll have to be more specific." : GOTO 110 
1040 IF VB <> 14 THEN 1100 

1050 IF NO = PRINT "Throw what?" : GOTO 110 

1060 IF OB(NO, 0) <> - 1 PRINT "I'm not holding it!" : GOTO 110 
1070 IF NO <> 24 AND NO <> 10 THEN 600 

1080 IF CP m 38 AND NO = 10 PRINT "The witch has vanished!" : OB 
(18, 0) m 38 : PRINT "Her hat remains." : OB(31, 0) « i OB(l 

0, 0) ■ : OB(8, '0) = - 1 : GOTO 110 
1090 GOTO 600 
1100 IF VB <> 15 THEN 1160 

1110 IF NO - PRINT "Show what?" : GOTO 110 

1120 IF OB(NO,, 0) <> - 1 PRINT "I'm not carrying it!" t GOTO 110 

1130 IF NO <> 11 PRINT "Nothing happened." : GOTO 110 
1140 IF 0B(9, 0) <> 25 PRINT "Nothing exciting happened." i GOTO 
110 

1150 PRINT "The vampire scurries off saying: 

You haven't seen the end of me yetli!" : OB(9, 0) « 9 t GOTO 110 
1160 IF VB <> 16 THEN 1230 

1170 IF NO <> 9 AND NO <> 13 AND NO <> 31 PRINT "That is Stupid. 

" : GOTO 110 
1180 IF OB(NO, 0) <> CP PRINT A : GOTO 110 



House of Seven Cables 



BASIC Adventure* 209 



1190 IF OB(23, 0) <> - 1 PRINT "I don't have any food, stupid!" 
: GOTO 110 

1200 IF NO = 9 AND OB(23, 0) <> - 1 PRINT "He only likes bananas 
." : GOTO 110 

1210 IF NO = 9 PRINT "He wharfs down your banana and eats the pe 

el, too!" : OB(23, 0) = : GOTO 110 
1220 PRINT "She grabs the banana and throws it into the brew." : 

OB(23, 0) = : GOTO 110 
1230 IF VB <> 17 THEN 1290 

1240 IF 0B(N0, 0) <> - 1 AND 0B(N0, 0) <> CP PRINT "I don't see 
it here." : GOTO 110 

1250 IF NO = 11 PRINT "I don't want to have bad breath." : GOTO 
110 

1260 IF NO <> 12 AND NO <> 23 PRINT R : GOTO 110 

1270 IF OB(NO, 0) <> - 1 PRINT "I'm not carrying it." : GOTO 110 

1280 PRINT "Munch, munch, munch. Good!" : OB(23, 0) = : OB(24, 

0) = - 1 : GOTO 110 
1290 IF VB <> 18 THEN 1410 

1300 IF NO = PRINT "je ne comprends pas. (I don't understand.) 
" : GOTO 110 

1310 IF NO <> 14 AND NO <> 22 AND NO <> 33 PRINT "That is beyond 

my capabilities." : GOTO 110 
1320 IF CP <> 25 AND NO = 14 PRINT "I see no coffin to open here 
!" : GOTO 110 

1330 IF CP = 25 AND OB ( 9 , 0) = CP AND NO = 14 PRINT "The vampire 

won't let me!" : GOTO 110 
1340 IF NO = 14 AND CP = 25 PRINT "The coffin is open." : CF = 1 

: IF OB(35, 0) = OB(35, 0) = 25 : GOTO 110 ELSE 110 
1350 IF NO <> 22 THEN 1390 

1360 IF CP = 2 PRINT "It is locked. Maybe these people(?) are fr 

iendly, so try ringingthe bell." : GOTO 110 
1370 IF CP = 6 PRINT "I cannot. There is no doorknob and no keyh 

ole. However, it is quite possible that' I can get by it." : 

GOTO 110 

1380 PRINT "I don't see no door here." : GOTO 110 

1390 IF OB(33, 0) = - 1 PRINT "Try UNFOLD AIRPLANE." : ELSE PRIN 

T "I have no airplane." 
1400 GOTO 110 

1410 IF VB <> 20 THEN 1500 

1420 IF NO = 22 AND (CP = 2 OR CP = 6) THEN 1450 

1430 IF NO = PRINT "Chop what? I don't understand!" : GOTO 110 

1440 IF OB(NO, 0) <> CP PRINT "I don't see it here." : GOTO 110 
1450 IF OB(39, 0) <> - 1 INPUT "With what, my bare hands"; BH$ : 
IF LEFT$(BH$, 1) = " Y" PRINT "I don't know Karate!" : GOTO 11 



1460 IF OB(39, 0) <> - 1 PRINT "All right, then!" : GOTO 110 
1470 IF NO <> 22 PRINT "That is beyond my power." : GOTO 110 
1480 IF CP <> 2 AND CP <> 6 PRINT "I see no door here." : GOTO 1 
10 

1490 PRINT "The door is chopped to pieces." : DF = 1 : GOTO 110 
1500 IF VB <> 19 THEN 1580 

1510 IF NO <> 22 AND NO <> 38 AND NO <> 14 PRINT "That is ridicu 
lous." : GOTO 110 



210 BASIC Adventures House of Seven Gables 



15 f « IF ™ ,?„ AND CP ° 25 PRINT " X see no co£fin t0 close her 
e." : GOTO 110 

1530 IF NO = 14 AND CP = 25 PRINT "The coffin is closed." : CF = 
: GOTO 110 



1540 IF NO = 22 AND CP = 2 PRINT "It is already closed." 
110 



GOTO 



1550 ^L N ?,T 22 AN ° CP = 5 PRINT " The door vanished, remember?" 
I GOTO 110 

1560 IF NO = 22 AND CP = 6 AND DF = 1 PRINT "Closing a bunch of 

wood scraps is beyond my power." : GOTO 110 
1570 IF NO = 22 PRINT "I see no door here." : GOTO 110 
1580 IF VB <> 21 THEN 1630 
1590 IF NO = PRINT Y : GOTO 110 

1600 IF NO <> 15 PRINT "Why do you keep telling me to do dumb th 
ings?" : GOTO 110 

1610 IF 0B(15, 0) <> - 1 print "I'm not holding them!" : GOTO 11 


1620 PRINT "Okay... 
Poof! 

The chemicals transformed themselves into an orange bubbling 
liquid..." : CF = 1 : GOTO 110 
1630 IF VB <> 22 THEN 1790 

1640 IF NO <> 16 AND NO <> 10 AND NO <> 28 AND NO <> 15 PRINT "Y 

ou can't be serious." : GOTO 110 
1650 IF NO = 16 AND CP = 38 PRINT "I don't think I should. (Ther 

e's an old shoe in it!)" : GOTO 110 
1660 IF NO = 10 AND OB(10, 0) = - 1 PRINT "Okay! 
Gulp, gulp, gulp.!" : GOTO 110 

1670 IF NO = 28 AND OB(28, 0) = - I PRINT "All right. 
Poof ! 
Oh, my! 
Where am I?? 
Oh, my! 

All my possessions were lost in the dense cloud 
of greasy black smoke." 

1680 IF NO <> 28 OR OB(28, 0) <> - 1 THEN 1770 

1690 FOR I = 8 TO LO 

1700 IF 0B$(I) =."" THEN 1730 

1710 IF 0B(I, 0) <> - 1 AND 0B(I, 0) <> 5 THEN 1730 
1720 0B(I, 0) = RND(38) 
1730 NEXT I 

1740 OB(28, 0) = : 0B(29, 0) = - 1 
1750 ZZ = 1 
1760 GOTO 110 

1770 IF NO = 15 PRINT "I don't want to try that." : GOTO 110 
1780 PRINT "I can't do that yet." : GOTO 110 
1790 IF VB <> 23 THEN 1850 
#1800 IF NO = 22 AND (CP = 2 OR CP = 6) THEN 1820 
1810 IF 0B(N0, 0) <> - 1 AND 0B(N0, 0) <> CP PRINT "I don't see 

it here." : GOTO 110 
1820 IF NO <> 9 AND NO <> 13 AND NO <> 31 PRINT "I don't want to 

hit the "; N0$; " . " : GOTO 110 
1830 IF NO = 9 PRINT "Hit him yourself! I'm sure not gonna!" : G 
OTO 110 



House of Seven Gables 



BASIC Adventures 211 



1840 PRINT "Yuch! She's got warts all over her!" : GOTO 110 
1850 IF VB = 24 PRINT "All right..."; NO$ : GOTO 110 
1860 IF VB = 25 PRINT "You have used"; T; "turns so far. . GOTO 
110 

1870 IF VB <> 26 THEN 1930 ^ B " w • . 

1880 IF NO <> 10 AND NO <> 28 AND NO <> 15 PRINT "Don't be dumb. 

" • GOTO 110 

1890*IF NO = 10 AND OB(10, 0) = - 1 PRINT "Your bucket 1S 

and the ground is wet." : OB(10, 0) = : 0B(8, 0) - - 1 . GOT 

1900 X IF NO = 28 PRINT "You are stuck with an empty test tube now 

." : OB(28, 0) = : OB(29, 0) = - 1 : GOTO 110 
1910 IF NO = 15 AND OB<15, 0) - - 1 PRINT "The chemicals reacted 
with the dust and I got lost in a thick cloud of orange smo 

ke. I suggest you LOOK." : CP = 12 s GOTO (i n0 rOTO 
1920 PRINT "I am not carrying it right now. : GOTO iiw 
1930 IF VB = 27 PRINT "I'm not Rocky, you know. : GOTO 110 
1940 IF VB <> 29 THEN 1980 

1950 IF NO <> 33 PRINT "Give me a break!" : GOTO 110 

1960 IF OB(33, 0) <> - 1 PRINT "I'm not holding an airplane' : 

GOTO 110 ■ % . rAfpn -1 , a 

1970 PRINT "OK." : OB(33, 0) = : OB(34, 0) = - 1 : GOTO 110 

1980 IF VB <> 28 THEN 2050 • . 4ib 

1990 IF OB(NO, 0) <> CP AND OB(NO, 0) <> - 1 PRINT "I don't see 

it and I'm not holding it." : GOTO 110 
2000 IF NO <> 34 AND NO <> 32 AND NO <> 19 PRINT "There is no wr 

iting there." : GOTO 110 
2010 IF OB(NO, 0) <> - 1 PRINT "I don't have it with me. : GOTO 

110 

2020 IF NO = 32 PRINT "It says: 

Nottub sserp" : GOTO 110 

2030 IF NO = 34 PRINT "It reads: 

Remember the Wizard of Oz." : GOTO 110 

2040 PRINT "They are written in witchish." : GOTO 110 

2050 IF VB = 30 PRINT "Try OPEN." : GOTO 110 

2060 IF VB <> 31 THEN 2120 

2070 IF OB(NO, 0) <> CP PRINT A : GOTO 110 

2080 IF NO <> 9 AND NO <> 31 PRINT "Be serious." : GOTO 110 
2090 IF OB(35, 0) <> - 1 PRINT "I don't have a knife!" : GOTO 11 

ii 

2100 IF NO = 31 PRINT "The knife vanishes when it touches her. 

: OB(35, 0) = : GOTO 110 
2110 PRINT "The vampire dies and then vanishes." : OB(9, 0) - 

: GOTO 110 

2120 IF NO <> 40 PRINT "That's idiotic..." : GOTO 110 

2130 IF CP <> 37 PRINT "I see no button here." : GOTO 110 

2140 CP = 38 : GOTO 80 

2150 PRINT "Oh, my! 

A ghost pops out and says: 

Throw me some treasure!" : GOSUB 2350 

2160 IF VB <> 16 OR NO <> 13 THEN 2180 

2170 IF OB(23, 0) = PRINT "I have no food." : ELSE PRINT He e 
ats the banana and vanishes." : OB(23, 0) = : OB(24, 0) = CP 
: GOTO 110 



212 BASIC Adventures 



House of Seven Gables 



2180 IF VB <> 14 PRINT "He is getting mad!" : GOSUB 2350 

2190 IF VB <> 14 PRINT "He has killed me!" : GOTO 2300 

2200 IF OB(NO, 0) <> -.1 PRINT "I'm not holding it." : GOSUB 235 

: GOTO 2180 
2210 IF OB(NO, 1) = PRINT "He growls: 
Not good enough! 

and throws it back." : GOSUB 2350 : GOTO 2180 

2220 PRINT "He snatches the treasure and runs away." : ZZ = ZZ - 

1 : OB(NO, 0) = : GOTO 110 
2230 PRINT "Heavens! A one-eyed ghoul popped out!" 
2240 INPUT "What am I to do"; CM$ : GOSUB 2360 
2250 IF VB <> 14 OR NO <> 15 THEN 2290 

2260 IF 0B(15, 0) <> - 1 PRINT "I don't have them!" : GOTO 2290 
2270 IF CF = PRINT "They weren't mixed!" : GOTO 2290 
2280 PRINT "The ghoul melts to nothing." : 0B(15, 0) = CP : GOTO 
110 

2290 PRINT "The ghoul kills me!" : GOTO 2300 

2300 J = :'FOR I = 8 TO LO : IF OB(I, 0) = 5 J = J + OB(I r 1) 
2310 NEXT I 
2320 J = J + MI 

2330 PRINT "Out of a maximum of 160 points, you scored"; J; "poi 
nts , 

using"; T; "turns." : PRINT : INPUT "Do you wish to play this ad 
venture again"; AG$ : AG$ = LEFT$(AG$, 1) : IF AG$ = "Y" THEN 
RUN : ELSE IF AG$ <> "N" THEN 2300 

2340 END 

2350 INPUT "****** What should I do"; CM$ 
2360 NO$ = "" : VB$ = " " : VB = : NO = 

2370 LC = LEN (CM$ ) : FOR I = 1 TO LC : IF MID$(CM$, I, 1) <> " " 

VB$ = VB$ + MID$(CM$, I, 1) : NEXT I 
2380 Vl$ = VB$ 
2390 VB$ = LEFT$ (VB$, 3) 

2400 FOR I = 1 TO NV : IF VB$(I) = VB$ VB = I : GOTO 2420 ELSE N 
EXT I 

2410 VB = 1 : N0$ = VB$ : GOTO 2440 

2420 IF LEN(V1$) + 1 >= LEN (CM$ ) NO = : RETURN 

2430 N0$ = RIGHT$(CM$, LEN (CM$ ) - 1 - LEN(V1$)) 

2440 NO$ = LEFT$(NO$, 3) : FOR I = 1 TO NN : IF NO$ = NO$(I) THE 

N 2460 ELSE NEXT I 
2450 NO = : RETURN 
2460 NO = I : RETURN 
2470 CLS 

2480 PRINT P$(CP) 

2490 FOR I = 8 TO LO : IF OB(I, 0) = CP PRINT "There is "; OB$(I 

) ; " here." 
2500 NEXT I 

2510 FL = : IF OB(27, 0) <> - 1 THEN 2530 : ELSE PRINT "I can 
go — "; : FOR I = TO 5 : IF P(CP, I) <> PRINT NO$(41 + I) 
; " "; : FL = 1 
2520 NEXT I : IF FL = PRINT "nowhere!" : ELSE PRINT 
2530 PRINT " — 



2540 GOTO 90 

2550 NN = 46 : LO = 40 : P = 40 : NV = 32 : DIM NO$ (NN) , OB$ (LO) 
, OB(LO, 1), P$(P), P(Pf 5), VB$(NV) 



House of Seven Gables 



BASIC Adventures 213 



2560 P$(l) - "I'm at the second gable." : DATA 0, 4, 0, 0, 0, 
2570 P$(2) = "I'm outside a house with seven gables. There is a 

doorbell beside the door." : DATA 0, 5, 0, 0, 0, 

2580 P$(3) = "I'm in the kitchen. There is a sink with a working 

spicket here." : DATA 0, 6, 0, 0, 0, 
2590 P$(4) = "I'm in the guest room. (I don't want to be a perma 

nent guest!" : DATA 1, 0, 5, 8, 0, 
2600 P$(5) ■ "I'm in the living room." : DATA 0, 9, 6, 4, f 
2610 P$(6) * "I'm in the dining room." : DATA 3, 0, 7, 5, 0, 
2620 P$(7) = "I'm at the bottom of a stairwell." : DATA 0, 0, 0, 

6, 29, 

2630 P$(8) = "I'm at the first gable. It overlooks a huge yard o 

f tall grass." : DATA 0, 0, 4, 0, 0, 
2640 P$(9) = "I'm at the top of a staircase." : DATA 5, 0, 0, 10 

, 0, 20 

2650 P$(10) = "I'm in a dark storage closet. 
A hollow voice says: Mix them." : DATA 0, f 9, 0, 0, 
2660 P$(ll) = "I'm in a mad scientist's laboratory." : DATA 0, 
, 0, 0, 0, 12 

2670 P$(12) = "I'm in a maze of hallways." : DATA f 16, 12, 12, 
11, 15 

2680 DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
2690 P$(15) = P$(12) : DATA 15, 17, 15, 16, 0, 
2700 P$(16) = P$(12) : DATA 15, 16, 12, 16, 16, 16 
2710 P$(17) = P$(12) : DATA 15, 0, 18, 0, 0, 

2720 P$(18) = "I'm at the west end of the hallway." : DATA 19, 
, 23, 17, 0, 

2730 P$(19) = "I'm in a dungeon. A crude note on the wall reads: 

You can't get out without killing me first! 

— Witchy-poo" : DATA 0, 

18, 19, 19, 19, 19 
2740 P$(20) = "I'm at the bottom of a staircase." : DATA 0, 23, 

0, 0, 9, 
2750 DATA 0, 0, 0, 0, 0, 

2760 P$(22) = "I'm in a barren library." : DATA 0, 24, 0, 0, 0, 



2770 P$(23) = "I'm in the center of a long East-West hallway." : 

DATA 20, 0, 24, 18, 0, 
2780 P$(24) = "I'm at the east end of the hallway." : DATA 22, 
, 25, 23, 0, 

2790 P$(25) = "I'm in Dracula's chamber." : DATA 0, 0, 0, 24, 0, 


2800 P$(26) = "I'm in a broom closet. Exciting." : DATA 0, 0, 0, 
27, 0, 

2810 P$(27) = "I'm at the fourth gable." : DATA 28, 0, 0, 26, 0, 



2820 P$(28) = "I'm at gable five." : DATA 0, 27, 29, 0, 0, 
2830 P$(29) = "I'm at the top of a staircase." : DATA 0, 0, 0, 2 
8, 0, 32 

2840 P$(30) = "I'm in a bedroom." : DATA 0, 0, 31, 33, 0, 
2850 P$(31) = "I'm in a dusty old chamber. Looks like a dilapida 

ted bedroom." : DATA 0, 34, 32, 30, 0, 
2860 P$(32) - "I'm at the sixth gable." : DATA 0, 0, 0, 31, 0, 



214 BASIC Adventures 



House of Seuen Gables 



2870 P$(33) = "I'm at the third gable." : DATA 0, 0, 34, 30, 0, 

28 0? 0^0 4) = " I,m at ° ne 6nd ° f a hal l*ay." : DATA 31, 40, 35, 
2890^P$^35) = "I'm in the middle of a hallway." : DATA 0, 0, 36, 
2900 P$(36) = P$(34) : DATA 32, 0, 37, 35, 0, 

IJL $ LIV I i 1 '? in 3 r °° m with a P edes tal in the middle. Atop 
2920 P$r38? S - a i T . 1S - a lar ge. button." : DATA 0, f 0, 36, 0, 39 
^, P?(38) " 1 m ln tne witch's chamber." : DATA 0, 0, 0, 0, 

2930 P$(39) = "I'm at the seventh gable." : DATA 37, 0, 0, 0, 0, 

2940 „ P$ i 40) = " I,m in a mamm °th art gallery." : DATA 34, 0, 0, 
,0,0 ' 

2950 06$ (8) = "an empty bucket" : DATA 6, 0:OB$(9) = "a mean loo 
king vampire" : DATA 25, 0:08$ (10) = » a bucket of water" : DAT 
A 0,0 

2960 0B$(11) = "some fresh garlic" : DATA 3, 

29 « °S?iJ 4) ,, S " a coffin " : DATA 25 ' 0:OB$(15) = "some chemicals 
: DATA 11, 

2980 0B$(16) = "a pot of witch's brew" : DATA 38, 

2990 0B$(18) = "a black hat" : DATA 0, 50:OB$(19) = "some valuab 

le recipies" : DATA 26, 15 
3000 06$ (20) = "some silver candlesticks" : DATA 6, 10 
3010 OB$(23) = "a banana" : DATA 3, 0:OB$(24) = "a banana peel" 

: DATA 0, ^ 

3020 OB$(25) = "a sparkling diamond" : DATA 39, 15:OB$(26) ■ "a 

black cat" : DATA 1, 
3030 OB$(27) = "a shiny compass" : DATA 2, 

3040 06$ (28) = "a test tube of fluid" : DATA 33, 0:OB$(29) = "an 

empty test tube" : DATA 0, 
3050 08$ (30) = "a beautiful rose" : DATA 29, 10:06$ (31) = "an ug 

ly witch" : DATA 38, 0:08$ (32) = "a book titled Primeval Witch 

craft" : DATA 22, 
3060 06$ (33) = "a paper airplane" : DATA 32, 0:06$ (34) = "a piec 

e of paper with writing on it" : DATA 0, 
3070 06$(35) = "Sulton's dagger" : DATA 0, 35:08$(36) = "a price 

less Rembrant" : DATA 40, 20 
3080 06$ (39) = "an old rusty axe" : DATA 15, 5 

3090 FOR I = 1 TO P : FOR J = TO 5 : READ P(I, J) : NEXT J, I 

3100 FOR 1 = 8 TO LO 

3110 IF 06$ (I) = "" THEN 3130 

3120 READ 06(1, 0), 06(1, 1) 

3130 NEXT I 

3140 DATA NOR, SOU, EAS, WES, UP, DOW, 8EL, 6UC, VAM, WAT, GAR, 
F00, GHO, COF, CHE, 6RE , CUP, HAT, REC, CAN, KEY, D00, 8AN , PE 
E, DIA, CAT, COM, FLU, TU6, ROS , WIT, 800, AIR, PAP, DAG, REM, 
CAG, GAT, AXE, 6UT, N, S, E, W, U, D 

3150 FOR I = 1 TO NN : READ N0$(I) : NEXT I 

3160 DATA GO, GET, LOO, INV, SCO, DRO, HEL, SAV, LOA, QUI, RIN , 
FIL, KIL, THR, SHO, FEE, EAT, OPE, CLO, CHO, MIX, DRI , HIT, SA 
Y, TUR, DUM, FIG, REA, UNF, UNL, STA, PRE 

3170 FOR I = 1 TO NV : READ V8$(I) : NEXT I 

3180 GOTO 80 



House of Seven Gables 



BASIC Adventures 215 



Chapter Fifteen 

Sorcerer's Castle 
by Greg Hassett 



Note: The save game routine for this program is for 
disk only. Tape routines may be created by 
modifying lines 480 and 490. 




216 BASIC Adventure* 



10 CLS : PRINT CHR$(23); " 



SORCERER'S CASTLE ADVENTURE 
BY GREG HASSETT" 

20 CLEAR 980 : ON ERROR GOTO 1420 : POKE 16553, 255 : DEFINT A - 

Z : DEFSTR S : CP = 49 : SI = "I DON'T SEE IT HERE." : S2 = " '7 
DON'T BE RIDICULOUS." : GOTO 1710 
30 GOTO 1520 s < 

Aid IF RND(85) = 20 THEN 1180 
50 IF ZZ > 2 AND RND(100) = 50 THEN 1250 
60 IF RND(27) = 8 THEN 1340 

70 T = T + 1 : GOSUB 1440 : IF VB$ = "ALA" IF CP = 32 CP = 17 : 

GOTO 30 ELSE PRINT "NOTHING HAPPENED." : GOTO 70 
80 IF VB = - 1 AND (NO > 21 AND NO < 30) VB = 1 
90 IF NO$ - "JES" PRINT "I SEE NO JESTER HERE." : GOTO 70 
100 IF VB$ = "CRO" IF (CP = 52 OR CP = 53) IF CP = 53 CP = 52 : 

GOTO 30 ELSE CP = 53 : GOTO 30 
110 IF VB$ = "TUR" PRINT "YOU HAVE USED"; T; "TURNS SO FAR." : G 

OTO 70 

120 IF VB <> 30 AND (VB > 10 OR VB = 2 OR VB = 6) AND NO$ = "" P 
RINT "YOU MUST SUPPLY A DIRECT OBJECT." : GOTO 70 

130 IF VB$ = "HI" IF RND ( 2 ) = 1 PRINT "HELLO" : GOTO 70 ELSE PRI 
NT "NICE WEATHER WE'VE BEEN HAVING LATELY." : GOTO 70 

140 IF NO$ = "GUN" NO = 1 

150 IF VB * 30 THEN 1080 

160 IF NO$ = "BAG" NO = 5 

170 IF VB = - 1 AND NO <> AND (NO < 22 OR NO > 29) PRINT "YOU 

MUST SUPPLY A VERB." : GOTO 70 
180 IF VB < 1 AND NO = PRINT "I DON'T KNOW HOW TO " CHR$(34); 

Nl$; CHR$(34)" ANYTHING." : GOTO 70 
190 IF VB = 6 AND (NO$ = "EVE" OR NO$ = "ALL") THEN 210 
200 IF NO = AND VB > 10 PRINT "I DON'T KNOW WHAT A " CHR$(34); 
1 Nl$; CHR$(34)" IS." : GOTO 70 

1-2-10 ON VB GOTO 220, 290, 30, 360, 390, 410, 470, 480 , 490, 500, 
520, 530, 560, 650, 6.70, 750, 780, 840, 850, 850, 560, 930, 93 
0, 950, 960, 990, 1020, 1050, 1060, 1080 

220 IF (NO < 22 OR NO' > 29) AND NO$ <> "" PRINT "I DON'T KNOW HO 
W TO DO THAT." : GOTO 7 

230 IF NO$ = "" PRINT "WHERE?" : GOTO 70 

240 IF NO > 25 NO = NO - 4 

250 NO = NO - 22 : IF P(CP, NO) = PRINT "THERE IS NO WAY TO GO 

IN THAT DIRECTION." : GOTO 70 
260 IF CP = 1 AND NO = 1 AND DF = PRINT "THE CASTLE DOOR IS LO 
CKED." : GOTO 70 

270 IF CP = 17 AND NO = 1 AND CF = PRINT "THE CRACK IS FAR TOO 

SMALL FOR YOU TO FOLLOW." : GOTO 70 
280 CP = P(CP, NO) : GOTO 30 

290 IF OB (NO, 0) = - 1 PRINT "YOU'VE ALREADY GOT IT 1 " : GOTO 70 
300 IF NO =0 PRINT "WHAT'S A " ; Nl$; "?" : GOTO 70 
310 IF OB(NO, 0) <> CP PRINT SI : GOTO 70 

320 IF NO = 17 OR NO = 21 OR NO = 20 OR NO = 16 PRINT S2 : GOTO 
70 



Sorcerer's Castle 



BASIC Adventures 217 



330 IF ZZ + 1 > 7 PRINT "YOU ARE UNABLE TO CARRY ANY MORE." : GO 
TO 70 

340 IF NO = 9 AND PF = PRINT "THE MOVEMENT OF THE PAINTING REV 

EALS A VAULT IN THE WALL. 
THE VAULT IS LOCKED." : PF = 1 : OB(16, 0) = CP : OB(9, 0) = - 1 

: ZZ = ZZ + 1 : GOTO 70 
350 PRINT "OKAY." : ZZ = ZZ + 1 : OB(NO, 0) = - 1 : GOTO 70 
360 IF ZZ = PRINT "YOU ARE EMPTY-HANDED." : GOTO 70 
370 PRINT "YOU ARE HOLDING THE FOLLOWING : " : FOR I = 1 TO LO : 

IF OB(I, 0) = - 1 PRINT OB$(I) 
380 NEXT I : GOTO 70 

390 J = : FOR I = 1 TO LO : IF OB(I, 0) = 1 J = J + OB(I, 1) : 

NEXT I ELSE NEXT I 
400 PRINT "OUT OF A MAXIMUM OF 225 POINTS, YOU HAVE"; J; "POINTS 
." : GOTO 70 

410 IF NO <> AND OB(NO, 0) <> - 1 PRINT "YOU'RE NOT CARRYING I 

Ti" : GOTO 70 
420 IF NO$ <> "EVE" AND NO$ <> "ALL" THEN 450 

430 IF ZZ • PRINT "YOU'RE NOT CARRYING ANYTHING!" : GOTO 70 EL 

SE FOR I = 1 TO LO : IF OB(I, ) = - \U B(I, 0) = CP 
440 NEXT I : ZZ = : PRINT "OK." : GOTO 70 

450 IF NO = PRINT "I'VE NEVER HEARD OF A "; Nl$; "." : GOTO 70 

460 OB (NO , 0) = CP : PRINT "DROPPED." : ZZ = ZZ - 1 : GOTO 70 
_4.70 PRINT "SORRY, THIS IS YOUR ADVENTURE, NOT MINE!" : GOTO 70 
480 CLS : OPEN "0", 1, NA$ : CLS : PRINT "SAVING..." : FOR 1=1 
TO LO : PRINT# 1, OB (I, 0) : NEXT I : PRINT# 1, CP; T; DF; VF 
; CF; PF; SF%; WF; ZZ : CLOSE : GOTO 30 
490 CLS : OPEN "I", 1, NA$ : CLS : PRINT "LOADING..." : FOR I = 

Ul TO LO : INPUT* 1, OB(I, 0) : NEXT I : INPUT# 1, CP, T, DF, V 
F, CF, PF, SF%, WF, ZZ : CLOSE : GOTO 30 
500 INPUT "DO YOU REALLY WANT TO QUIT NOW";.QN$ : IF LEFT$(QN$, 
1) <> "Y" THEN 70 ELSE INPUT "ARE YOU SURE"; Q2$ : IF LEFT$(Q2 
$, 1) <> "Y" PRINT "I DIDN'T THINK SO." : GOTO 70 
510 GOTO 1380 

520 PRINT "ALL RIGHT..."; Nl$; : GOTO 70 

530 IF OB(NO, 0) <> - 1 PRINT "YOU'RE NOT HOLDING IT HENCE IT IS 

IMPOSSIBLE TO DRINK IT." : GOTO 70 
540 IF NO <> 7 PRINT S2 : GOTO 70 

550 PRINT "OKAY. GULP GULP GULK. SOMETHING SEEMS DIFFERENT NOW.. 

." : ZZ = ZZ - 1 : 0B(7, 0) = : CF = 1 : GOTO 70 
560 IF NO <> 31 AND NO <> 16 AND NO <> 30 PRINT "I KNOW NOT HOW 

TO OPEN SUCH A THING." : GOTO 70 
570 IF NO = 16 AND OB (16, 0) <> CP PRINT "WHAT VAULT?" : GOTO 70 

580 IF NO ■ 16 AND 0B(2, 0) <> - 1 PRINT "YOU DON'T HAVE THE KEY 
: GOTO 70 

590 IF NO = 16 PRINT "THE VAULT IS OPEN." : VF = 1 : IF 0B(15, 

) = PRINT "A GOLD BAR FALLS OUT!" : 0B(15, 0) = CP 
600 IF NO = 16 THEN 70 
610 IF NO = 31 THEN 1150 

620 IF CP <> 1 PRINT "WHAT DOOR?" : GOTO 70 

630 IF 0B(2, 0) <> - 1 PRINT "YOU DON'T SEEM TO HAVE THE KEY." : 
GOTO 70 



218 BASIC Adventures 



Sorcerer's Castle 



ry-&40 PRINT "THE DOOR IS OPEN." : DF = 1 • GOTO 70 
|( 65 70 IF ° B(N0 ' 0) ° * 1 PRINT " Y0U ARE NOT CARRYING IT." : GOTO 

LV 6 "^"T!fiQTOf KN0WN STRANGE PE0PLE ' BUT ATTACKING "; 0B$ (NO) ; 
/ 670 IF NO = 20^ THEN 720 

680 IF NO = 17 PRINT "WHAT KNIGHT?" : GOTO 70 

690 IF NO = 21 PRINT "I SEE NO PIRATE HERE." : GOTO 70 

700 „ I f GOTO '70^ ° ~ 1 PRINT-^YO-tf ARE NOT CURRENTLY HOLDING THAT 

710 PRINT "IT ISN'T ALIVE!" : GOTO 70 
720 IF CP <> 32 PRINT "WHAT SORCERER?" : GOTO 70 

730 IF 0B(8, 0) <> - 1 PRINT "YOU HAVE NO SWORD TO DO IT WITH. 
OH MY! THE SORCERER HAS JUST KILLED YOU!" : FOR I = 1 TO 3000 
: NEXT L : GOTO 1380 ^ 
740 PRINTv3THE SORCERER DIED AND THEN VANISHED. HIS SCEPTOR REMA 
INS." : 0B(14, 0) = CP : OB(20, 0) = : GOTO 70 □ 
750 IF OB(NO, 0) <> - 1 PRINT "YOU DON'T HAVE THAT RIGHT NOW." 
GOTO 70 

760 IF NO <> 3 PRINT "HOW DO YOU EXPECT TO READ "; 0B$ (NO) • "?" 

: GOTO 70 
770 PRINT "IT SAYS : 
MAGIC WORD : ALAKAZAM." : GOTO 7 

780 IF OB(NO, 0) <> - 1 AND OB(NO, 0) <> CP PRINT "I DON'T SEE T 

HAT HERE." : GOTO 70 
790 IF 0B(1, 0) <> - 1 PRINT "YOU DON'T HAVE A GUN!" : GOTO 70 
800 IF NO = 17 PRINT "THE BULLET DISSOLVES AS IT HITS THE ARMOR. 
" : GOTO 70 

810 PRINT "THE GOLDEN BULLET FROM THE GOLDEN PISTOL VAPORIZES TH 
AT. " 

820 IF OB(NO, 0) = - 1 ZZ = ZZ - 1 
830 OB(NO, 0) = : GOTO 70 

840 IF OB(NO, 0) = - 1 PRINT S2 : GOTO 70 ELSE PRINT "YOU'RE NOT 

HOLDING IT." : GOTO 70 
850 IF NO = 16 OR NO = 30 OR NO = 31 THEN 880 

860 IF OB (NO, 0) <> - 1 PRINT "YOU ARE NOT HOLDING THAT TO MY KN 

OWLEDGE." : GOTO 70 
870 PRINT "I DON'T KNOW HOW TO CLOSE SUCH A THING." : GOTO 70 
880 IF NO = 16 AND 0B(16, 0) <> CP PRINT "WHAT VAULT?" : GOTO 70 

890 IF NO = 16 PRINT "THE VAULT IS CLOSED AND LOCKED." : VF = 

: GOTO 70 
900 IF NO ■ 31 THEN 1120 

910 IF CP <> 1 PRINT "WHAT DOOR?" : GOTO 70 

920 PRINT "THE DOOR IS CLOSED AND LOCKED." : DF = : GOTO 70 
930 IF OB(NO, 0) <> - 1 PRINT "YOU'RE NOT HOLDING IT." : GOTO 70 

940 PRINT "NO, THESE ITEMS HAVE TO BE USED ON THE NEXT ADVENTURE 

, TOO." : GOTO 70 
950 PRINT "THE VALUE OF THAT IS"; OB(NO, 1); "POINTS." : GOTO 70 

960 IF OB(NO, 0) <> - 1 PRINT "YOU DON'T SEEM TO -HAVE IT." : GOT 
70 

970 IF NO <> 8 PRINT "WOW THIS IS FUN!" : GOTO 70 



Sorcerer's Castle 



BASIC Adventures 219 



980 PRINT "WHOOOSH!" : GOTO 70 

990 IF OB(NO, 0) <> - 1 PRINT "YOU'RE NOT CURRENTLY CARRYING IT. 

" : GOTO 70 
1000 IF NO <> 8 PRINT S2 : GOTO 70 

1010 PRINT "IT IS ALREADY RAZOR SHARP." : GOTO 70 

1020 IF OB(NO, 0) <> - 1 PRINT "TU NE LE PORTES PAS (YOU'RE NOT 

CARRYING IT)." : GOTO 70 
1030 IF NO <> 19 PRINT "HOW?" : GOTO 70 

1040 PRINT "VERY GOOD! NOW YOU MAY GO TO SECOND GRADE!" : GOTO 7 


1050 PRINT "TRY DROP." : GOTO 70 

1060 PRINT "I CAN ONLY TELL YOU WHAT IS IN THE ROOM WITH YOU. SO 
RRY , " 

1070 PRINT "I CANNOT FIND ANYTHING." : GOTO 70 

1080 IF CP <> 44 IF RND ( 2 ) = 1 PRINT "WHEEEE!" ELSE PRINT "ARE Y 

OU ENJOYING YOURSELF?" 
1090 IF CP <> 44 THEN 70 

1100 IF WF = PRINT "THE WINDOW IS ONLY SLIGHTLY AJAR." : GOTO 
70 

1110 PRINT "OKAY... YOU FALL SAFELY IN THE PILE OF LEAVES." : CP 
= 48 : PRINT "YOU SEEM TO BE LOST IN A FOREST OF SPRUCE TREES. 
" : GOTO 70 

1120 IF CP <> 44 PRINT "WHAT WINDOW? I DON'T SEE A WINDOW!" : GO 

^ TO 70 

f 1130 IF WF = PRINT "IT IS ALREADY CLOSED." : GOTO 70 
11*0- -PRINT "HAVING OPENED IT EARLIER, YOU FIND IT IMPOSSIBLE TO 

CLOSE . " : GOTO70 

1150 IF CP <> 44~°&RTNT "WHAT WINDOW?" : GOTO 70 
1160 IF WF = 1 PRINT "IT IS ALREADY OPEN." : GOTO 70 
1170 PRINT "THROUGH A GREAT EFFORT, YOU OPEN THE WINDOW. THERE I 
S A PILE 

OF LEAVES OUTSIDE THE WINDOW." : WF = 1 : GOTO -XLJ 

1180 PRINT "HOLY MOLY! A BLACK KNIGHT WALKED IN TO KILL YOU!" : 

GOSUB 1440 
1190 IF VB <> 17 OR NO <> 17 THEN 1220 

1200 IF OB(l, 0) <> - 1 PRINT "YOU HAVE NO GUN!" : GOTO 1220 
1210 PRINT "THE KNIGHT DISINTEGRATED." : GOTO 70 
1220 PRINT "THE KNIGHT IS RUNNING TOWARD YOU..."; 

1230 IF RND ( 5 ) = 2 PRINT "IT KILLS YOU" : FOR I = 1 TO 3000 : NE 

XT I : GOTO 1380 
1240 PRINT "IT MISSES YOU 

AND CRASHES INTO THE WALL... WAIT! HE HAS DISAPPEARED!" : GOTO 70 

-if TkcA t Col ' £"LS &z 

1250 PRINT "A PIRATE JUST APPEARED AND CHORTLED," 

1260 PRINT "WELL SHIVER ME TIMBERS! NOT ANOTHER ONE! HAR HAR HAR 
ii 

1270 PRINT "I'LL JUST SNATCH ALL THIS BOOTY AND HIDE IT" 
1280 PRINT "DEEP IN THE MAZE." 

1290 PRINT "WITH THAT HE STEALS ALL OF YOUR TREASURE!" 

1300 FOR I = 1 TO LO : IF OB(I, 0) <> - 1 THEN .1330 

1310 IF OB(I, 1) = THEN 1330 

1320 OB(I, 0) = RND ( 6 ) + 34 : ZZ = ZZ - 1 

1330 NEXT I : GOTO 70 

1340 PRINT "JINGLE JINGLE JINGLE!" : PRINT "CHESTER THE JESTER P 
OPS UP AND CHANTS," 



220 BASIC Adventures 



Sorcerer's Castle 



1350 PRINT CHR$(34); C$(RND(8) - 1); " TEE HEE HEE!"; CHR$(34) 

1370 GOTO T 70 AN ° THEN VANISHES IN A CL0UD OF PINK SMOKE." 

1380 CLS : J = : FOR I = 1 TO LO : IF OB(I, 0) =1J=J+0B( 

1 / 1 ) 
1390 NEXT I 

1400 PRINT "OUT OF A MAXIMUM OF 225 POINTS, YOU HAVE SCORED"; J; 

"POINTS." 
1410 END 

1420 PRINT "WHAZZAT?" : GOTO 70 
1430 STOP 

1440 INPUT "♦**** WHAT DO YOU WANT TO DO"; CM$ 

1450 Nl$ = : vi$ = " " : no = : VB = : N0$ = "" : VB$ = "" 

1460 CM = LEN (CM$ ) : FOR I = 1 TO CM : IF MID$(CM$, I, 1) <> " " 

Vl$ = Vl$ + MID$(CM$, I, 1) : NEXT I 
1470 VB$ = LEFT$(V1$, 3) : FOR 1=1 TO NV : IF VB$(I) = VB$ VB 

= I : GOTO 1490 ELSE NEXT I 
1480 VB = - 1 : Nl$ = Vl$ : GOTO 1500 

1490 IF LEN(V1$) + 1 >= LEN (CM$ ) NO = : RETURN ELSE Nl$ = RIGH 

T$(CM$, LEN (CM$ ) - 1 - LEN(V1$)) 
1500 N0$ = LEFT$ (N 1 $ , 3) : FOR I = 1 TO NN : IF NO$(I) = N0$ NO 

= I : RETURN ELSE NEXT I 
1510 NO = : RETURN 

1520 CLS : PRINT "YOU'RE "; P$ (CP) : FOR I = 1 TO LO 

1530 IF OB(I, 0) = CP PRINT " *** THERE IS "; OB$(I); " HERE." 

1540 NEXT I 

1550 IF CP = 1 AND DF = PRINT "THE DOOR IS LOCKED." 
1560 IF CP = 18 AND VF = AND 0B(16, 0) = 18 PRINT "THE VAULT I 
S LOCKED." 

1570 IF CP = 17 AND CF = PRINT "A SMALL CRACK LEADS SOUTHWARD, 
n 

1580 IF CP = 1 AND DF = 1 PRINT "THE DOOR IS OPEN." 
1590 IF CP = 18 AND VF = 1 AND 0B(16, 0) = 18 PRINT "THE VAULT I 
S OPEN." 

1600 IF CP = 44 AND WF = PRINT "THE WINDOW IS SLIGHTLY AJAR." 
1610 IF CP = 17 AND CF = 1 PRINT "A TOWERING HOLE LEADS SOUTHWAR 
D." 

1620 IF CF = P(17, 1) = 

1630 IF CP = 44 AND WF = 1 PRINT "THE WINDOW IS WIDE OPEN. THERE 

IS A RATHER 
LARGE PILE OF LEAVES OUTSIDE THE WINDOW." 

1640 K = : PRINT "YOU CAN GO "; : FOR I = TO 3 : IF P(CP, I) 

= THEN 1670 
1650 IF K = 1 PRINT ", "; 
1660 PRINT D$ (I) ; : K = 1 
1670 NEXT : IF K = PRINT "NOWHERE!" 
1680 IF K = 1 PRINT 
1690 P(17, 1) = 18 

== = ========'• : GOTO 40 

1710 NP = 53 : LO = 35 : NN = 31 : NV = 30 : DIM P(NP, 3), P$ (NP 

), VB$(NV), NO$(NN), OB(LO, 1), 0B$ (LO) 
1720 P$(l) = "OUTSIDE A MEDIEVAL CASTLE." : DATA 5, 8, 3, 2, 4, 

7, 1, 0, 6, 7, 0, 1 



Sorcerer's Castle 



BASIC Adventures 221 



1730 P$ = ■ SIDE OF THE CASTLE." : P$(2) = "AT THE WEST" + P$ : 

P$(3) = "AT THE EAST" + P$ 
1740 P$(4) = "IN A VAST FOREST STRETCHING OUT OF SIGHT." : DATA 

4, 2, 4, 4, 53, 0, 6, 1 
1750 P$(5) = P$(4) : P$(6) = P$(4) : DATA 6, 6, 6, 5 
1760 P$(7) = "AT THE SOUTH" + P$ + " 

THERE IS A TOWER WITH A SMALL WINDOW IN THE FAR, FAR DISTANCE." 

: DATA 2, 0, 0, 
1770 P$(8) = "IN A SPLENDID CHAMBER 30 FEET HIGH." : DATA 1, 11, 
0, 10 

1780 P$(9) = "IN A DAMP, MUSTY LIBRARY." : DATA 0, 10, 0, 
1790 P$(10) = "IN THE MASTER BEDROOM," : DATA 9, 0, 8, 
1800 P$ = "IN A VAST CORRIDOR STRETCHING OUT OF 
SIGHT TO THE " : P$(ll) = P$ + "SOUTH." : DATA 8, 12, 14, 
1810 P$(12) = P$ + "NORTH AND SOUTH." : DATA 11, 13, 15, 
1820 P$(13) = P$ + "NORTH." : DATA 12, 0, 16, 17 

1830 P$ = "IN A BEDROOM WITH A " : P$(14) = P$ + "STONE FLOOR." 

: P$(15) = P$ + "WOODEN FLOOR." : P$(16) = P$ + "DIRT FLOOR." 

: DATA 0, 0, 0, 11, 0, 0, 0, 12, 0, 33, 0, 13 
1840 P$(17) = "IN A DUSTY PANTRY. MARKINGS IN THE DUST READ, 
GO SOUTH TO DUNGEON." : DATA 0, 18, 13, 



1850 


P$(18) 


= "IN 


A 


PRIMITIVE ART GALLERY." : DATA 17, 


19, 0, 19 


1860 


P$ (19) 


= "IN 


A 


MAZE OF TWISTY LITTLE PASSAGES." 




1870 


P$ (20) 


= "IN 


A 


TWISTY MAZE OF LITTLE PASSAGES." 




1880 


P$(21) 


= "IN 


A 


LITTLE MAZE OF TWISTY PASSAGES." 




1890 


P$ (22) 


= "IN 


A 


TWISTING MAZE OF LITTLE PASSAGES." 




1900 


P$ (23) 


= "IN 


A 


LITTLE TWISTY MAZE OF PASSAGES." 




1910 


DATA 0, 


20, 


18, 


0, 20, 22, 20, 19, i 21, 21, 22, 23, 


21, 22, 


20 


, 22, 21 


, 24, 


23 


, 23 





1920 P$(24) = "IN THE KITCHEN." : DATA 23, 27, 25, 0, 0, 27, 26, 

24, 29, 28, 30, 25 
1930 P$(25) = "IN THE DINING ROOM." : P$(26.) = "IN THE ALCOVE TO 
THE STUDY." : P$(27) = "IN THE OFFICE OF THE SORCERER (?) " : 

DATA 24, 0, 28, 
1940 P$(28) = "IN THE DRAWING ROOM." : DATA 0, 0, 0, 27, 0, 26, 

0, 0, 0, 31, 0, 26 
1950 P$(29) = "IN THE PARLOR." : P$(30) = "IN THE STUDY." : P$(3 

1) = "IN THE SITTING ROOM." : DATA 0, 0, 0, 0, 0, 0, 0, 
1960 P$(32) = "IN THE DUNGEON'" 

1970 FOR I - 1 TO NP : FOR J = TO 3 : READ P(I, J) : NEXT J, I 

: P(31, RND (4) - 1) = 32 
1980 P$(33) = "IN A PRIMEVAL CONFERENCE ROOM." : DATA 16, 0, 35, 



1990 P$(34) * "IN THE TOWER. IT OVERLOOKS A HUGE KINGDOM DOWN 
A MONSTROUS MOUNTAIN. THE GRASS IS GREENER THAN GREEN ITSELF." : 
DATA 0, 0, 36, 

2000 P$(35) = "IN A MAZE OF TWISTY LITTLE PASSAGES, ALL ALIKE." 

2001 FOR I = 36 TO 40 : P$(I) = P$(35) : NEXT : DATA 36, 35, 35, 
33, 38, 34, 37, 35, 36, 0, 39, 0, 40, 39, 39, 36, 38, 37, 39, 
38, 41, 38, 0, 0, 42, 40, 0, 

2010 P$(41) = "AT THE BRINK OF A HUGE PIT." : P$(43) = "IN A BAR 

REN CUBICLE, WITH PASSAGES LEADING OFF TO THE 
NORTH AND SOUTH." 



222 BASIC Adventures 



Sorcerer's Castle 



l\\Vk\ = " IN THE PIT - A G00D PASSAGE EXITS TO THE NORTH." 

A SMAff'wTMnnu, » T T EN ° ° F ™ E CASTL£ ' Y0U CAN SEE FOREST OUT 
™™ d L ,^ D0W ;' = 43 ' »» "I, 0, 44, 42, 0, 0, 0, 0, 0, 

20 p $ 45 > = " L0ST ™ * DARK FOREST MADE UP OF CHIEFLY SPRUCE T 

I IT L* in T ?/ 8 : P$U) = P$(45) : NEXT 1 ! DATA 45, 46, 4 

l' 45 ' 47 ' 46 ' 50 ' 46 ' 51 ' 4 "7, 48, 50, 48, 47, 48 

2040 P$ 49) = "ON AN OLD PATH MADE BY HORSES IN MEDIEVAL TIMES." 

rrW i ] " IN THE MIDDLE 0F A CLEARING. TO THE SOUTH IS A BR 

2041 P$(52) = "ON THE NORTH SIDE OF THE BRIDGE" : P$(53) = "ON T 
HE SOUTH SIDE OF THE BRIDGE." : DATA 0, 50, 45, 0, 49, 48, 46 

0, 0, 52, 47, 0, 51, 53 

20 cwo DA ^ T ' ' 52 ' 5 ' ' ' PIS ' KEY ' BOO , RUG, COI, SAP, LIQ, 
SWO, PAI, OPA, SIL, PEN, PIL, SCE, BAR, VAU, KNI, CUP, CRO, SO 
R , P I R 

2051 DATA NOR, SOU, EAS, WES, N, S, E, W, DOO, WIN 

2060 DATA GO, GET, LOO, INV, SCO, DRO, HEL, SAV, LOA, QUI, SAY, 

DRI, OPE, HIT, KIL, REA, SHO, EAT, CLO, LOC, UNL, DES, BRE , VA 

L, SWI, SHA, WEA, THR, FIN, J UM 
2070 FOR I = 1 TO NN : READ NO$(I) : NEXT I : FOR I = 1 TO NV • 

READ VB$(I) : NEXT I 

2080 DATA A GOLD PISTOL, 4, 10, A SET OF KEYS, 2, 0, A BOOK ON S 
ORCERY, 9, 0, A PERSIAN RUG, 10, 15, A BAG OF COINS, 3, 15, A 
PRICELESS SAPHIRE ' ' ' 

2081 DATA 14, 10, A FLASK OF LIQUID, 15, 0, A GOLDEN SWORD, 42, 
10, A PRICELESS PAINTING, 18, 15 

2090 DATA A GIANT OPAL, 22, 15, A SET OF SILVERWARE, 24, 15, A P 
LATIN UM PEN, 27, 5, A VELVET PILLOW, 43, 20, THE SORCERER'S SC 
EPTOR, 0, 50 

2091 DATA A GOLD BAR, 0, 20, A VAULT IN THE WALL, 0, 0, A BLACK 
KNIGHT, 0, 0, A PEWTER CUP, 25, 15 r A KING'S CROWN, 30, 10, XX 
X 

2100 DATA 32, 0, AN EVIL PIRATE, 0, 

2110 FOR I = 1 TO 21 : READ OB$(I), OB(I, 0), OB(I, 1) : NEXT I 

2120 DATA NORTH, SOUTH, EAST, WEST 

2130 FOR I = TO 3 : READ D$(I) : NEXT I 

2140 P$(19) = P$(19) + " 

A NOTE ON THE WALL READS: THIS IS NOT THE MAZE WHERE THE PIRATE 
HIDES HIS TREASURE. — GH" 

2150 OB$(20) = "AN EVIL SORCERER JUST WAITING TO CAST A SPELL 
ON YOU" 

2160 P$(50) = "AT THE END OF THE PATH, WITH FOREST SURROUNDING 

YOU IN ALL DIRECTIONS EXCEPT NORTH, WHERE YOU WERE BEFORE." 

2170 P(50, 3) = 48 : P$(47) = P$(47) + " 

TO THE SOUTH THERE SEEMS TO BE LIGHT." 

2180 FOR I = 52 TO 53 : P$(I) = P$(I) + " 

ACROSS THE BRIDGE IS MORE FOREST." : NEXT 

2190 P(36, 2) = 37 

2200 C$(0) = "PAY ATTENTION IN THE MAZE, TO THE WORDING OF THE 
PHRASE! IF YOU DO YOU'LL BE UN-MAZED." 

2210 C$(l) = "GULP GULP GULP, DRINK IT DOWN, I'M NOT SUCH A 
STUPID CLOWN!" 



Sorcerer's Castle 



BASIC Adventures 223 



2220 C$(2) « "OUT OF A WINDOW YOU MAY FALL. JUST LOOK OUT, 
THAT IS ALL! " 

v^n I ,^i 3) = " THE KNIG HTS CAN 1 T BE KILLED, AS FAR AS I KNOW. IF 
YOU FIND THEY CAN, PLEASE TELL ME SO! " 

2240 C$(4) = "DON'T BRING THE SWORD TO THE SORCERERS PLACE. IF 
YOU DO, HE MIGHT CONFRONT YOU FACE TO FACE!" 

2250 C$(5) = "HOCUS POCUS, ALAKAZAM! DON't'rEAD THE BOOK OR 
YOU LL BE SORRY! (YOU TRY TO RHYME ALAKAZAM)!" 
2260 C$(6) = "PASSAGES THAT SEEM ALL ALIKE CAN SEEM QUITE 
DIFFERENT, JUST HOPE YOU'RE RIGHT!" 

2270 C$(7) = "NOT ALL TREASURE LIES UNDER A ROOF. SOME MIGHT BE 
UNDER A TREE!" 

2280 CLS : INPUT "WHAT IS YOUR NAME"; NA$ : NA$ = NA$ + "/AN4-1" 
: GOTO 30 




224 BASIC Adventures 



Sorcerer's Castle 



Chapter Sixteen 

CIA Adventure 
by Hugh Lampert 



CLOAD Magazine began as one of the grand 
experiments of the new home computer age. A 
program magazine in magnetic (tape) form, this 
format has launched many programmers into 
careers as selling authors. It has provided high 
quality programs for its customers consistently for 
more than three years. 




BASIC Adventures 225 



10 CLS : CLEAR 250 : DEFINT A - Z : GOTO 40 
3 Z9 = : FOR R = 1 TO 50 : IFja$ = N$ (R) AND (N (R) = LO OR N 
(R) = - 1) THEN Z9 = 1 : RETURN 

30 NEXT : PRINT "I DON'T SEE THAT HERE." : Z9 = 2 : RETURN 

40 PRINT CHR$(23); ■ c.I.A ADVENTURE" : PRINT " BY 

HUGH LAMPERT" 

50 DIM Nl$j50), N$(50), N(50), V$(18), LO(30, 4), LO$(30) : FL = 

1 : DR - : DG = - 1 : T = : EL = : BU = : DO = : CA 
= : BA = : TE = : GL = 

Jal-I it^^dLU/' R0 = • FOR R = 1 TO 5 : Rl = RND ( 9 ) : CO$ = + 
CO^L}L\ STR$(R1) : NEXT : LO = 1 : (£?$ = ">" + STRING$(62, "-") + V 

//. t / i R = LEN < C0 $) : CO$ = RIGHT$lcO$7^K-^- l) ' — 

80 FOR R = 1 TO 50 : READ Nl$ (R) , N$ (R) , N(R) : NEXT 




4 



90 FOR R = 1 TO 30 

LO(R, 4) : NEXT 
100 FOR R = 1 TO 18 
110 CLS 

120 PRINT "WE ARE "; LO$(LO); 
130 FOR R = 1 TO 46 



READ LO$(R), LO (R , 1), LO(R, 2), LO(R, 3), 
READ V$(R) : NEXT 



IF N(R) = LO PRINT "I CAN SEE "; N1$(R); 

IF LO(LO, R) > THEN B = 1 
IF LO(LO, 1) > PRINT "NORT 




FOR R = 1 TO 1 



140 NEXT : B = : FOR R = 1 TO 4 • 
150 NEXT : IF B = THEN 200 
160 PRINT "WE COULD EASILY GO: "• • 
H " ; 

170 IF LO(LO, 2) > PRINT "SOUTH "; 
180 IF LO(LO, 3) > PRINT "EAST "; 

190 IF LO(LO, 4)__>_0 PRINT "WEST ": 

200 PRINT : fmiNT A9$^ } ' " " ~~~~ 

210 T = T + lN-lF__DO^> THEN DG = DG - 1 
220 IF T = 1 INPUT "ENTER YOUR NAME PARTNER" ; (NA$ 
230 GOTO 1760 

lil ! PV V : FOR R = 1 TO 46 : IF N(R) = - 1 THEN N = N + 1 
250 NEXT 

Vhljl,*™ PRINT : INPUT " WHAT 00 Y0U THINK WE SHOULD DO"; A$ 
J "*l27d GOSUB 1890 .: V$ = LEFT$ (A$ , 3) : GOSUB 1950 : 

Yl/^ 8 : IF V$ s (V^R) THEN 300 ELSE NEXT 
/v f%80 IF V$ = "ORD ri THEN 2390 

290 PRINT "I DON'T KNOW HOW TO DO THAT." : GOTO 260 
300 IF V$ = "QUI" THEN 1650 

310 V = R : FOR R = 1 TO LEN (A$ ) : IF MID$(A$, R, 1) = « » THEN 

360 ELSE NEXT 
320 IF V$ = "LOO" THEN 110 
330 IF V$ = "BON" THEN 1670 
340 IF V$ - "INV" THEN 1690 

35 ? GOTO T 260 LEASE 2 W ° RD C0MMANDS S0 1 CAN UNDERSTAND YOU." 

360 Vl$ = MID$(A$, R + I, 3) : FOR R = 1 TO 49 : IF VIS = N$ (R) 
THEN 390 ELSE NEXT ^ ' 

3? THEN 39I = " N0R " ° R V1$ = " S ° U " ° R V1$ = " EAS " 0R = " WES " 

380 PRINT "I DON'T KNOW WHAT IT IS YOU ARE TALKING ABOUT." : GOT 

260 

390 ON V GOTO 400, 530, 620, 680, 800, 840, 1040, 1140, 1300 13 

20, 1360, 1450, 1490, 1540, 1600, 1650, 1 6 70, 1 6 90 
400 IF Vl$ = "NOR" AND LO(LO, 1) > THEN LO = LO(LO, 1) : GOTO 
110 



226 BASIC Adventures 



CIA Adventure 



410 IF Vl$ = "SOU" AND LO(LO, 2) > THEN LO = LO(LO, 2) : GOTO 
110 

420 IF Vl$ = "EAS" AND LO(LO, 3) > THEN LO = LO(LO, 3) : GOTO 
110 

430 IF Vl$ = "WES" AND LO(LO, 4) > THEN LO - LO(LO, 4) : GOTO 
110 

440 IF Vl$ = "NOR" OR Vl$ = "SOU" OR Vl$ = "EAS" OR Vl$ = "WES" 
THEN 520 

450 GOSUB 20 : IF Z9 = 2 THEN 210 
460 IF R = 8 THEN LO = 5 : GOTO 110 

470 IF R = 37 AND RO = 1 AND LO = 20 THEN LO = 21 : GOTO 110 

480 IF R = 10 THEN LO = 11 : GOTO 110 

490 IF R = 14 THEN LO = 13 : GOTO 110 
^ 500 IF R = 33 THEN LO = 3 : GOTO 110 
* 510 IF R = 34 AND = 1 THEN LO = 9 : GOTO 110 

520 PRINT "I CAN'T GO THAT WAY AT THE MOMENT." : GOTO 210 

530 GOSUB 20 : IF Z9 = 2 THEN 210 

540 IF R = 2 OR R = 3 OR R = 4 OR R = 6 OR R = 15 OR R = 16 OR R 
= 20 OR R = 21 OR R = 22 OR R = 23 OR R = 25 OR R = 26 OR R = 
27 OR R = 28 OR R = 30 OR R = 31 OR R = 37 OR R = 39 OR R = 4 
OR R = 42 OR R = 44 OR R = 45 OR R = 46 THEN 560 
550 PRINT "I CAN'T CARRY THAT!" : GOTO 210 
560 IF N(R) = - 1 PRINT "I ALREADY HAVE IT." : GOTO 210 
570 IF N >= 5 PRINT "I CAN'T CARRY ANYMORE." : GOTO 210 
580 PRINT "O.K." : N(R) = - 1 

590 IF Vl$ = "PAI" AND PA = PRINT "SOMETHING FELL FROM THE FRA 

ME!" : N(31) = LO : PA = 1 
600 IF Vl$ = "TEL" THEN TE = 
610 GOTO 210 

620 FOR R = 1 TO 46 : IF Vl$ - N$ (R) AND N(R) = - 1 THEN 640 ELS 
E NEXT 

630 PRINT "I DON'T SEEM TO BE CARRYING IT." : GOTO 210 
640 IF R = 30 PRINT "I DROPPED THE CUP BUT IT BROKE INTO SMALL P 
IECES." : PRINT "THE COFFEE SOAKED INTO THE GROUND." : N(30) = 
: DR = : GOTO 210 
650 IF R = 45 THEN GL = 

660 IF R = 31 AND N(30) = - 1 PRINT "O.K. I DROPPED IT." ; PRINT 
"BUT IT FELL IN THE COFFEE!" : N(31) = : DR = 1 : GOTO 210 

670 PRINT "O.K. I DROPPED IT." : N(R) = LO : GOTO 210 

680 IF Vl$ * "BUT" AND LO = 3 AND DO = PRINT "THE DOORS OPEN W 
ITH A WHOOSH!" : DO = 1 : GOTO 210 

690 IF N(46) = - 1 AND Vl$ = "BUT" THEN PRINT "I PUSH THE BUTTON 
ON THE BOX AND" : GOTO 770 

700 GOSUB 20 

710 IF Z9 = 2 THEN 210 

720 IF R = 17 AND GL <> 1 PRINT "THERE'S ELECTRICITY COURSING TH 
RU THE SQUARE!" : PRINT "I'M BEING ELECTROCUTED!" : GOTO 2510 

730 IF R = 35 AND BU = PRINT "THE BUTTON ON THE WALL GOES IN . 
...." : PRINT "CLICK! SOMETHING SEEMS DIFFERENT NOW." : BU = 1 
: GOTO 210 

740 IF R = 47 AND FL <> 1 THEN LO(9, 1) = 3 : FL = 1 : GOTO 790 
750 IF R = 48 AND FL <> 2 THEN LO(9 r 1) = 8 : FL = 2 : GOTO 790 
760 IF R = 49 AND FL <> 3 THEN LO(9, 1) = 10 : FL = 3 : GOTO 790 



CIA Adventure 



BASIC Adventures 227 




770 IF N(46) = - 1 AND (LO = 6 OR LO = 29) PRINT "THERE IS A BLI 
NDING FLASH...." : FOR R = 1 TO 3000 : NEXT : LO = 1 : FL = 1 
: LO(9, 1) w 3 : GOTO 110 

780 PRINT "NOTHING HAPPENS." : GOTO 210 

790 PRINT "THE DOORS CLOSE AND I FEEL AS IF THE ROOM IS MOVING." 
: PRINT "SUDDENLY THE DOORS OPEN AGAIN." : FOR R = 1 TO 3000 
: NEXT : GOTO 110 
800 GOSUB 20 : IF Z9 = 2 THEN 210 

810 IF R = 18 AND GL <> 1 PRINT "THE LEVER HAS ELECTRICITY COURS 
ING THRU IT!" : PRINT "I'M BEING ELECTROCUTED!" : GOTO 2510 

820 IF R = 18 AND EL = PRINT "THE LEVER GOES ALL THE WAY UP AN 
D CLICKS." : PRINT "SOMETHING SEEMS DIFFERENT NOW." : EL = 1 : 
GOTO 210 

830 PRINT "NOTHING HAPPENS." : GOTO 210 
840 REM LOOKING AT OBJECTS 

850 IF Vl$ = "DRA" AND LO = 5 PRINT "IT LOOKS FRAGILE." : GOTO 2 
10 

860 GOSUB 20 : IF Z9 = 2 THEN 210 

870 IF R = 1 AND BA <> 1 PRINT "THERE'S NO POWER FOR IT." : GOTO 
210 

880 IF R = 1 AND TE <> 1 PRINT "THERE'S NO T.V. TO WATCH ON." : 
GOTO 210 

890 IF R = 6 PRINT "IT LOOKS HEAVY." : GOTO 210 
7 PRINT "IT'S LOCKED." : GOTO 210 
13 PRINT "IT'S A VERY STRONG BAG." : GOTO 210 
19 PRINT "I CAN SEE A LOCKED DRAWER IN IT." : GOTO 21 



900 IF R 
910 IF R 
920 IF R 


930 IF R 


940 IF R 
950 IF R 
10 

960 IF R 

210 
970 IF R 


980 IF R 
990 IF R 



= 22 OR R = 27 PRINT "THERE'S WRITING ON IT." : GOTO 21 

- 34 AND DO = 1 PRINT "THE DOORS ARE OPEN." : GOTO 210 
= 24 PRINT "I CAN SEE A GLEAMING STONE IN IT." : GOTO 2 

= 9 PRINT "THERE IS A SMALL SLIT NEAR THE DOOR." : GOTO 

= 34 PRINT "THERE'S A BUTTON NEAR THE DOORS." : GOTO 21 



41 AND BU = 1 PRINT "THE SCREEN IS DARK." : GOTO 210 
41 PRINT "I SEE A METAL PIT 1000 'S OF FEET DEEP ON ON 
E MONITOR." : PRINT "ON THE OTHER SIDE OF THE PIT, I SEE A LAR 
GE HOOK." : GOTO 210 
1000 IF R = 43 AND BU = 1 PRINT "THE SCREEN IS DARK." : GOTO 210 

1010 IF R = 43 PRINT "I SEE A ROOM WITH A CASE ON A PEDESTAL IN 
IT." : GOTO 210 

1020 IF R - 44 PRINT "I SEE A PICTURE OF A GRINNING JACKAL." : G 
OTO 210 

1030 PRINT "I SEE NOTHING OF INTEREST." : GOTO 210 
1040 GOSUB 20 : IF Z9 = 2 THEN 210 

1050 IF R <> 3 AND R <> 2 AND R <> 4 AND R <> 28 THEN PRINT "I C 

AN ' T INSERT THAT!" : GOTO 210 
1060 INPUT "TELL ME, IN ONE WORD, INTO WHAT"; A3$ : A3$ = LEFT$ ( 

A3$, 3) 

1070 Rl = R : Vl$ = A3$ : GOSUB 20 : IF Z9 = 2 THEN 210 
1080 IF Rl = 3 AND R = 1 THEN PRINT "O.K." : BA = 1 : N(3) = : 
BA = 1 : GOTO 210 



228 BASIC Adventures 



CIA Adventure 



1090 IF Rl = 4 AND R = 50 AND DG <= PRINT "THE GUARD WON'T LET 
ME!" : GOTO 210 

1100 IF Rl = 2 AND R = 1 THEN PRINT "O.K. THE TAPE IS IN THE REC 

ORDER." : N(2) = : TA = 1 : GOTO 210 
1110 IF Rl = 4 AND R = 50 THEN PRINT "POP! A SECTION OF THE WALL 

OPENS " : PRINT "REVEALING SOMETHING VERY INTERESTING." : 

N(4) = : N(5) = LO : GOTO 210 
1120 IF Rl = 28 AND R = 29 PRINT "POP! A CUP OF COFFEE COMES OUT 

OF THE MACHINE." : N(28) = : N(30) - LO : GOTO 210 
1130 PRINT "NOTHING HAPPENED." : GOTO 210 
1140 REM OPENING OBJECTS 

1150 IF Vl$ = "DRA" AND LO = 5 AND N(23) = PRINT "IT'S STUCK." 

: GOTO 210 
1160 GOSUB 20 : IF Z9 = 2 THEN 210 

1170 IF R = 7 OR R = 9 OR R = 13 OR R = 15 OR R = 23 OR R = 32 

R R = 5 THEN 1190 
1180 PRINT "I CAN'T OPEN THAT!" : GOTO 210 

1190 IF R = 7 AND N(16) = - 1 PRINT "O.K. I OPENED THE DOOR." : 

N(7) = : N(8) = 4 : GOTO 210 
1200 IF R = 9 PRINT "I CAN'T. IT DOESN'T WORK." : GOTO 210 
1210 IF R = 13 AND N(16) = - 1 PRINT "O.K. THE CLOSET IS OPENED. 

" : N(13) = : N(14) = 14 : GOTO 210 
1220 IF R = 15 PRINT "I CAN'T. IT'S TOO STRONG." : GOTO 210 
1230 IF R = 23 PRINT "IT'S STUCK." : GOTO 210 

1240 IF R = 32 AND N(28) = AND N(4) = AND SC = 1 PRINT "I OP 
EN THE SCULPTURE." : PRINT "SOMETHING FALLS OUT." : N(28) = LO 
: N(4) = LO : GOTO 210 
1250 IF R <> 5 THEN 1290 

1260 INPUT "WHAT'S THE COMBINATION"; C$ 

1270 IF C$ = CO$ THEN PRINT "THE DOOR IS SLOWLY OPENING." : N(5) 

* : N(9) = : N(10) = 10 : GOTO 210 
1280 PRINT "YOU MUST HAVE THE WRONG COMBINATION OR YOU ARE NOT" 

: PRINT "SAYING IT RIGHT." : GOTO 210 
1290 PRINT "I CAN'T DO THAT YET!" : GOTO 210 

1300 IF Vl$ = "GLO" AND N(45) = - 1 PRINT "O.K. I'M NOW WEARING 

THE GLOVES." : GL = 1 : GOTO 210 
1310 PRINT "I CAN'T WEAR THAT!" : GOTO 210 

1320 IF Vl$ <> "SIG" AND Vl$ <> "NOT" THEN PRINT "I CAN'T READ T 

HAT." : GOTO 210 
1330 GOSUB 20 : IF Z9 = 2 THEN 210 

1340 IF R = 22 PRINT '"IT SAYS:" : PRINT NA$ ; "," : PRINT " WE H 
AVE DISCOVERED ONE OF CHAOS' SECRET WORDS." : PRINT "IT IS: BO 
ND-007-. TO BE USED IN A -TASTEFUL- SITUATION." : GOTO 210 

1350 IF R = 27 PRINT "IT SAYS: WATCH OUT! DANGEROUS!" : GOTO 210 

1360 IF Vl$ <> "REC" PRINT "I CAN'T START THAT." : GOTO 210 

1370 GOSUB 20 : IF Z9 = 2 THEN 210 

1380 IF BA <> 1 OR TE <> 1 OR TA <> 1 THEN 1440 

1390 PRINT "THE RECORDER STARTS UP AND PRESENTS A SHORT MESSAGE: 
ii 

1400 PRINT NA$; "," 

1410 PRINT "WE HAVE UNCOVERED A NUMBER THAT MAY HELP YOU." 

1420 PRINT "'THAT NUMBER IS: "; CO$; ". PLEASE WATCH OUT FOR HIDD 

EN TRAPS." 

1430 PRINT "ALSO, THERE IS SOMETHING IN THE SCULPTURE." : SC = 1 

: GOTO 210 



CIA Adventure 



BASIC Adventures 229 



GOTO 210 

'I'M TRYING TO BREAK IT, BUT I C 



DO THAT YET. " 
BUT I GOT IT. 
N(23) = LO : 
210 



: GOTO 210 
TWO THINGS 
GOTO 210 



FELL 



1440 PRINT "NOTHING HAPPENED." 
1450 IF Vl$ <> "DRA" THEN PRINT 

AN ' T. " : GOTO 210 
1460 IF N(6) <> - 1 PRINT "I CAN'T 
1470 IF LO = 5 PRINT "IT'S HARD... 

OUT." : N(3) = LO : N(22) = LO 
1480 PRINT "NOTHING HAPPENS." : GOTO 
1490 GOSUB 20 : IF Z9 = 2 THEN 210 
1500 IF R <> 15 AND R <> 24 THEN PRINT 

ORK." : GOTO 210 
1510 IF N(25) <> - 1 PRINT "I CAN'T DO THAT YET." 
1520 IF R = 15 PRINT "RIP! THE BAG GOES TO PIECES, 

FALLS OUT'" : N(15) = : N ( 2 ) = LO : GOTO 21.0 
1530 IF R = 24 PRINT "I CUT THE CASE AND REACH IN TO PULL SOMETH 

ING OUT." : N(26) = - 1 : GOTO 210 
1540 IF Vl$ <> "ROP" THEN PRINT "I CAN'T THROW THAT. 



I'M TRYING. IT DOESN'T W 



GOTO 210 
AND SOMETHING 



"I CAN'T DO THAT 
WORD, AT WHAT"; 



YET." 
A3$ : 



1550 IF N(37) <> - 1 PRINT 
1560 INPUT "TELL ME, IN ONE 
$, 3) 

1570 IF A3$ <> "HOO" PRINT "O.K. I THREW IT." 
210 

1580 IF LO <> 20 PRINT "I CAN'T DO THAT YET." 

PRINT "I THREW THE ROPE AND IT SNAGGED ON 
: N(37) = LO : GOTO 210 

IF Vl$ <> "TEL" THEN PRINT "I CAN'T CONNECT THAT. 



GOTO 210 



: GOTO 210 
A3$ = LEFT$ (A3 



1590 
1 

1600 
10 

1610 IF N(40) 

OTO 210 
1620 IF TE 
IF LO 
PRINT 
PRINT 
PRINT 
: PRINT 
: NEXT 



N(37) = LO 

GOTO 210 
THE HOOK." : 



GOT 



RO = 



GOTO 2 



<> LO PRINT "I DON'T SEE THE TELEVISION HERE. 



1630 
1640 
1650 
1660 

NT 

00 
1670 

AND" 

XT : 
1680 
1690 

46 
1700 
1710 



= 1 PRINT "I DID THAT ALREADY." : GOTO 210 
<> 2 PRINT "I CAN'T DO THAT .... YET! " : GOTO 210 
"O.K. THE T.V. IS CONNECTED." : TE = 1 : GOTO 210 
"WHAT? YOU WOULD LEAVE ME HERE TO DIE ALONE?" 
"JUST FOR THAT, I'M GOING TO DESTROY THE GAME." : PRI 
PRINT : PRINT "BOOOOOOOOOOOOM! " : FOR R = 1 TO 50 
STOP 



IF LO = 14 PRINT "WHOOPS' A TRAP 
PRINT "I FIND MYSELF FALLING, 
: LO = 17 : GOTO 110 
PRINT "NOTHING HAPPENED." : GOTO 
Z8 = : PRINT "WE ARE PRESENTLY 



DOOR OPENED UNDERNEATH ME 
" : FOR R = 1 TO 4000 : NE 



210 

CARRYING:" 



IF N(R) <> - 1 
PRINT Nl$ (R) ; 



THEN 1730 
IF R = 45 



AND GL = 1 PRINT 



RING." ELSE PRINT 



FOR R = 1 TO 



WHICH I'M WEA 



PRINT "NOTHING 



1720 Z8 = 1 
1730 NEXT 
1740 IF Z8 = 
1750 GOTO 210 

1760 IF LO = 3 AND N(39) = 
ND THEN THROWS ME OUT." 
GOTO 110 

1770 IF LO = 10 AND N(42) <> 
SPICIOUSLY, THEN THROWS ME 
LO - 9 : GOTO 110 



- 1 PRINT "THE DOOR 
FOR R = 1 TO 4000 



MAN LOOKS 
NEXT : LO 



AT ME 
= 1 



- 1 PRINT "THE GUARD LOOKS 
BACK." : FOR R = 1 TO 4000 



AT ME SU 
: NEXT : 



230 BASIC Adventures 



CIA Adventure 



1780 IF LO = 6 AND BU <> 1 PRINT "SIRENS GO OFF ALL AROUND ME I " 

: PRINT "GUARDS RUN IN AND SHOOT ME TO DEATH!" : GOTO 2510 
1790 IF LO = 11 AND EL <> 1 PRINT "THE FLOOR IS WIRED WITH ELECT 

RICITY!" : PRINT "I'M BEING ELECTROCUTED!" : GOTO 25.10 
1800 IF LO = 10 AND N(30) = - 1 AND DR = 1 PRINT "THE GUARD TAKE 

S MY COFFEE" : PRINT "AND FALLS TO SLEEP RIGHT AWAY." : DG = 5 
+ RND(10) : N(ll) = : N(12) =10 : DR = : N(30) = : GOT 

240 

1810 IF DG = PRINT "I HEAR A NOISE LIKE SOMEONE IS YAWNING." : 

N(ll) = 10 : N(12) =0:GU=-2:DG=-1: GOTO 240 
1820 IF LO = 1 AND N(26) = - 1 PRINT "HURRAY! YOU'VE RECOVERED T 

HE RUBY!" : PRINT "YOU WIN!" : GOTO 2530 
1830 IF T > 375 PRINT "I THINK THEY ARE ON TO ME . . . . I HEAR NOISE 

S." 

1840 IF T = 400 PRINT "OH NO! THEY CAUGHT UP TO ME! HELP! THEY ' R 

E PULLING OUT GUNS!" : GOTO 2510 
1850 IF T = 1 PRINT "WRITING ON THE WALL SAYS:" : PRINT "IF YOU 

WANT INSTRUCTIONS TYPE: ORDERS PLEASE" 
1860 IF LO = 6 AND L0(6, 2) <> PRINT "A SECRET DOOR SLAMS DOWN 

BEHIND ME!" : L0(6, 2) = : GOTO 240 
1870 IF LO = 10 AND GU = - 2 PRINT "THE GUARD DRAWS HIS GUN AND 

SHOOTS ME!" : GOTO 2510 
1880 GOTO 240 

1890 IF A$ = "N" THEN A$ = "GO NORTH" : RETURN 
1900 IF A$ = "S" THEN A$ = "GO SOUTH" : RETURN 
1910 IF A$ = "E" THEN A$ = "GO EAST" : RETURN 
1920 IF A$ = "W" THEN A$ = "GO WEST" : RETURN 
1930 IF A$ = "I" THEN A$ = "INV" : RETURN 
194 RETURN 

1950 IF V$ = "WAL" OR V$ = "RUN" THEN V$ = "GO " : RETURN 
1960 IF V$ = "TAK" OR V$ = "CAR" THEN V$ = "GET" : RETURN 
1970 IF V$ 
1980 IF V$ 
1990 IF V$ 
2000 IF V$ 
2010 IF V$ 
2020 IF V$ 
2030 IF V$ 
2040 IF V$ 
2050 IF V$ 
2060 RETURN 

2070 DATA A VIDEO CASSETTE RECORDER, REC, 2, A VIDEO TAPE, TAP, 
0, A LARGE BATTERY, BAT, 0, A BLANK CREDIT CARD, CAR, 

2080 DATA AN ELECTRONIC LOCK, LOC , 0, AN ELABORATE PAPER WEIGHT, 
WEI, 5, A LOCKED WOODEN DOOR, DOO, 4 

2090 DATA AN OPEN WOODEN DOOR, DOO, 0, A SOLID LOOKING DOOR, DOO 
, 10 

2100 DATA AN OPEN DOOR, DOO, 0, AN ALERT SECURITY GUARD, GUA, 10 

, A SLEEPING SECURITY GUARD, GUA, 
2110 DATA A LOCKED MAINTENANCE CLOSET, CLO, 14, A MAINTENANCE CL 

OSET, CLO, 0, A PLASTIC BAG, BAG, 13 
2120 DATA AN OLDE FASHIONED KEY, KEY, 9, A SMALL METAL SQUARE ON 

THE WALL, SQU, 16 
2130 DATA A LEVER ON THE SQUARE, LEV, 16, AN OLD MAHOGANY DESK, 

DES, 5, A BROOM, BRO, 13, A DUSTPAN, DUS, 13 



"WAL" 


OR V$ 




ii 


RUN" THEN V$ = 


"TAK" 


OR V$ 






CAR" THEN V$ = 


"LEA" 


THEN 


V$ 




"DRO" : 


RETURN 


"PRE" 


THEN 


V$ 




"PUS" : 


RETURN 


"EXA" 


THEN 


V$ 




"LOO" 


: 'RETURN 


"PUT" 


THEN 


V$ 




"INS" : 


RETURN 


" UNL" 


THEN 


V$ 




"OPE" 


: RETURN 


"PL A" 


THEN 


v$ 




"STA" : 


: RETURN 


"SMA" 


THEN 


V$ 




"BRE" 


: RETURN 


"ATT" 


THEN 


v$ 




"CON" 


: RETURN 


"LIS" 


THEN 


V$ 




"INV" 


: RETURN 



CIA Adventure 



BASIC Adventures 231 



2140 DATA A SPIRAL NOTEBOOK, NOT, 0, A MAHOGANY DRAWER, DRA, 0, 

A GLASS CASE ON A PEDESTAL, CAS, 6 
2150 DATA A RAZOR BLADE, BLA, 27, A VERY LARGE RUBY, RUB, 0, A S 

IGN ON THE SQUARE 
2160 DATA SIG, 16, A QUARTER, QUA, 0, A COFFEE MACHINE, MAC, 8, 

A CUP OF STEAMING HOT COFFEE, CUP, 
2170 DATA A SMALL CAPSULE, CAP, 0, A LARGE SCULPTURE, SCU, 3, A 

TALL OFFICE BUILDING, BUI, 1 
2180 DATA A PAIR OF SLIDING DOORS, DOO, 3, A LARGE BUTTON ON THE 
WALL 

2190 DATA BUT, 29, A PANEL OF BUTTONS NUMBERED ONE THRU THREE, P 

AN, 9, A STRONG NYLON ROPE, ROP, 17 
2200 DATA A LARGE HOOK WITH A ROPE HANGING FROM IT, HOO, 21, A C 

.I.A. IDENTIFICATION BADGE, BAD, -1, A PORTABLE TELEVISION, TE 

L, 7 

2 210 DATA A BANK OF MONITORS, MON , 7, A CHAOS I.D. CARD 

2220 DATA CAR, 30, A BANK OF MONITORS, MON, 1*9, A SMALL PAINTING 

, PAI, 23, A PAIR OF RUBBER GLOVES, GLO, 13 
2230 DATA A BOX WITH A BUTTON ON IT, BOX, 24, ONE, ONE, 9, TWO, 

TWO, 9, THREE, THR, 9, SLIT, SLI , 10 
2240 DATA ON A BUSY STREET, 0, 0, 0, 0, IN A VISITOR'S ROOM, 0, 

0, 3, 

2250 DATA IN THE LOBBY OF THE BUILDING, 1, 0, 4, 2, IN A DINGY A 

NTE ROOM, 0, 0, 0, 3 ' 
2260 DATA IN THE COMPANY PRESIDENT'S OFFICE, 0, 0, 0, 4, IN A SM 

ALL SOUND PROOFED CUBICLE, 0, 12, 0, 
2270 DATA IN A SECURITY OFFICE, 0, 0, 8, 0, IN A SMALL HALLWAY, 

0, 14, 9, 7, IN A SMALL ROOM, 3, 0, 0, 
2280 DATA IN A SHORT CORRIDOR, 0, 15, 0, 9, IN A HALLWAY MADE OF 

METAL, 0, 0, 12, 10 
2290 DATA IN A SMALL PLAIN ROOM, 6, 0, 0, 11 

2300 DATA IN A MAINTENANCE CLOSET, 0, 0, 14, 0, IN A CAFETERIA, 

8, 0, 0, 0, IN A SIDE CORRIDOR, 10, 0, 16, 
2310 DATA IN A POWER GENERATOR ROOM, 0, 0, 0, 15, IN A SUB-BASEM 

ENT BELOW THE CHUTE, 0, 0, 18, 
2320 DATA IN THE ENTRANCE TO THE SECRET COMPLEX, 0, 20, 19, 17 
2330 DATA IN A SECRET MONITORING ROOM, 0, 0, 0, 18 

2340 DATA ON A LEDGE IN FRONT OF A METAL PIT 1000' S OF FEET DEEP 
, 18, 0, 0, 0, ON THE OTHER SIDE OF THE PIT, 0, 0, 22, 

2350 DATA IN A LONG CORRIDOR, 0, 25, 23, 21, IN A LARGE ROOM, 0, 
26, 0, 22, IN A SECRET LABORATORY, 0,0, 25, 

2360 DATA IN A NARROW CROSS CORRIDOR, 22, 0, 0, 24, IN A CROSS E 
XAMINATION ROOM, 23, 28, 0, 0, IN A SMALL BATHROOM, 0, 0, 28, 


2370 DATA IN THE OFFICE OF THE CHIEF OF CHAOS, 26, 30, 0, 27, IN 
THE CHAOS CONTROL ROOM, 0, 0, 30, 0, NEAR THE END OF THE COMP 

LEX, 28, 0, 0, 29 
2380 DATA "GO " , GET, DRO, PUS, PUL, LOO, INS, OPE, WEA, REA, ST 

A, BRE, CUT, THR, CON, QUI, BON, INV 
2390 CLS : PRINT "YOUR MISSION,"; NA$ ; ",IS TO RECOVER A RUBY TH 

AT IS BEING" 

2400 PRINT "USED IN TOP SECRET GOVERNMENT PROJECTS AS A PART IN 
A" 

2410 PRINT "LASER PROJECTOR." 



232 BASIC Adventures 



CIA Adventure 



2420 PRINT "YOU WILL HAVE A PARTNER WHO IS NOT TOO BRIGHT AND NE 
EDS" 

2430 PRINT "YOU TO TELL HIM WHAT TO DO. USE TWO WORD COMMANDS LI 
KE : " 

2440 PRINT : PRINT " GET NOTEBOOK GO WEST LOOK DOOR" 

2450 PRINT : PRINT "SOME COMMANDS USE ONLY ONE WORD. EXAMPLE : IN 
VENTORY" 

2460 PRINT "IF YOU WANT TO SEE CHANGES IN YOUR SURROUNDINGS TYPE 
: LOOK" 

2470 PRINT "THE RUBY HAS BEEN CAPTURED BY A SECRET SPY RING KNOW 
N AS" 

2480 PRINT "CHAOS. WE SUSPECT THEY ARE UNDER COVER SOMEWHERE IN 
THIS" 

2490 PRINT "NEIGHBORHOOD. GOOD LUCK!" 
2500 GOTO 240 

2510 FOR R = 1 TO 5000 : NEXT : CLS : PRINT "I'M DEAD!" 
2520 PRINT "YOU DIDN'T WIN." 

2530 INPUT "WOULD YOU LIKE TO TRY AGAIN (Y/N) " ; Z$ 
2540 IF Z$ =» "Y" THEN RUN 
2550 'COPYRIGHT (C) CLOAD 1980 

HUGH LAMPERT 

110 LINDNER PL. 

MALVERNE, NY 11565 



CIA Adventure 



BASIC Adventures 233 



Chapter Seventeen 

Arctic Adventure 
by Harry McCracken 



Harry McCracken is a fifteen-year old student at 
the Cambridge School in Massachusetts. The 
school, which features a well balanced program of 
studies for the gifted, has encouraged its students 
to enhance their knowledge of the computer arts by 
providing instruction and support. 

Harry's other interests include telecom- 
munications, Dungeons and Dragons, and a 
devotion to science fiction. 

Arctic Adventure is Harry's first published work. 
He wrote the program in BASIC, even though his 
interests have long since turned to machine 
language programming. In encoding Harry's 
adventure, the reader should take note of the 



advanced techniques he has employed. Comparing 
i4rcn'c Adventure to one of the early commercial 
BASIC adventures, it is easy to see how far the 
coding procedures have advanced in a very few 
years. 

Note: The save game routines in this program are 
for tape only. Disk routines may be added by 
modifying lines 760 to 770 and the subroutine at line 
900. 

String packing of a special screen scroll routine 
takes place in line 20. After this portion of the 
program has been run once, the twelve asterisks at 
the beginning of the line being assigned to S$ will 
contain BASIC keywords. Do not attempt to edit 
that string once it has been created. 




234 BASIC Adventures 



FE = 3 : DIM 0$(43, 3), R$(20, 2), M$(42) : GOS 



10 CLEAR 10000 
UB 1370 

20 S$ = "************« . L m PEEK(VARPTR(S$) + 2) * 256 + 
ARPTR(S$) + 1) : FOR A = TO 11 : READ B : POKE L + A, B 
XT : 11$ = "***************« . p0KE VARPTR(I1$) + 1, 207 
E VARPTR(I1$) + 2, 63 

: READ R$ (A, 1) , R$ (A , 
: READ 0$ (A, 1) , 0$ (A, 



PEEK (V 
NE 
POK 



30 
40 



FOR 
FOR 



R = 20 
* 41 
NEXT 

READ Vl$, V2$ 
READ Nl$, N2$, 
M = 42 : FOR A 



= 1 
- 1 



TO 
TO 



2) 
2) 



NEXT 
0$ (A, 



3) 



50 

60 READ Nl$, N2$, NT$ 

70 M = 42 : FOR A = 1 TO M : READ M$ (A) : NEXT 
80 PRINTS 594, "Press ENTER to continue." 
90 A$ = INKEY$ : IF A$ <> CHR$(13) THEN GOTO 90 
100 DEFUSR = L : CMD"T" : DS = 1 : GOTO 120 

110 ON ERROR GOTO : POKE 16526, PEEK ( VARPTR (S$ ) + 1) : POKE 16 

527, PEEK (VARPTR (S$) + 2) 
120 L = 1 : CLS : PRINT@ 512, STRING$(64, "-"); 
130 GOSUB 790 

140 PRINTS 960, "Welcome to " CHR$ ( 34) "Arctic Adventure" CHR$(34 

); : GOSUB 1050 : PRINT "By Harry McCracken"; : GOSUB 1050 
150 IF L = 5 OR L = 9 OR L = 15 OR L = 16 THEN IF F2 <> 1 THEN P 



RINT M$(21); : GOSUB 1050 

INT M$(22); : GOSUB 1050 : L 
160 IF L > 1 AND L < 12 AND Fl 

: GC = GC + 1 : IF GC > 10 

GOTO 180 
170 PRINT "Your 
180 GOSUB 1050 

PRINT "Do you 
190 A$ = INKEY$ 

END : ELSE IF 
200 GOTO 200 

210 PRINT CHR$(8); CHR$(176); : A$ = 
; : IF A$ = "" THEN 210 

PRINT CHR$(8); : IF ASC(A$) < 32 
THEN PRINT " " ; : GOTO 210 
= CHR$(8) THEN IF POS ( ) > 
: GOTO 210 
= CHR$(13) THEN 270 



GOTO 180 : ELSE IF F5 <> 1 THEN PR 
= 5 : GOSUB 790 

= THEN PRINT M$(6); : GOSUB 105 
THEN PRINT M$(7); : GOSUB 1050 : 



Command — > "; : GOSUB 
PRINT "The adventure 
want to play again?"; 
: IF A$ = "" THEN GOTO 
A$ = "Y" THEN RUN 



<> 
IF 



220 
) 

230 

NT " 
240 IF 
250 IF 



13 
A$ 

A$ 



210 

is over."; : GOSUB 1050 : 

190 ELSE IF A$ = "N" THEN 
ELSE GOTO 190 

INKEY$ : PRINT CHR$(8); " " 

AND ASC(A$) <> 8 AND ASC(A$ 

15 THEN GOTO 210 



ELSE PRI 



POS(0) < 30 THEN PRINT A$; 
260 GOTO 210 
270 1$ = LEFT$(I1$, 



GOTO 210 



PRINT "What?"; : GOSUB 



POS(0) 
GOSU 
TO LEN(I$) 



- 15) + " " : 
1050 : GOTO 150 
IF MID$(I$, A, 



GOSUB 1050 



1) = " 

N$ = MID$(I$, A + 1, 3) 



280 FOR A = 1 

: ELSE NEXT 
290 Q = A : V$ = LEFT$(I$, 3) 

= 1 TO LEN(V1$) STEP 3 
300 IF MID$(V1$, A, 3) = V$ THEN GOTO 310 : 
don't know how to "; CHR$(34); LEFT$(I$, 
GOSUB 1050 : GOTO 150 
310 IF N$ = "" THEN 1$ = 1$ + " " : N$ = "***« 
320 V - VAL(MID$(V2$, A, 3)) : FOR A = 1 TO LEN (Nl$ ) 
330 IF MID$(N1$, A, 3) = N$ THEN GOTO 340 ELSE NEXT 



: IF 1$ = "" 
THEN GOTO 290 



FOR A 



ELSE NEXT : PRINT 
Q); "."; CHR$(34); 



on 



t know what "; CHR$(34); RIGHT$(I$, LEN(I$) - 



STEP 3 
PRINT "I 
Q) ; CHR$(8) ; 



CHR$(34); "means. 



GOSUB 1050 : GOTO 150 



Arctic Adventure 



BASIC Adventures 235 



340 N = VAL (MID$ (N2$, A f 3)) : IF N = 36 THEN PRINT M$(35); : GO 
SUB 1050 : PRINT M$(36); : GOSUB 1050 : GOTO 150 

350 NT = VAL (MID$ (NT$ , A, 3)) : ON V GOTO 360, 400, 460, 510, 55 
0, 570, 590, 650, 660, 670, 680, 690, 710, 730, 750, 760, 770, 
920, 990 

360 GOSUB 1060 : IF NT = 3 THEN PRINT "That isn't possible."; : 
GOSUB 1050 : GOTO 150 : ELSE GOSUB 370 : 0$(N, 2) = "99" : NO 
= NO + 1 : GOSUB 790 : PRINT M$(5); : GOSUB 1050 : GOTO 150 

370 IF NO = 5 THEN PRINT M$(25); : GOSUB 1050 : GOTO 150 

380 IF (L = 11 AND VAL(0$(24, 2)) = 11) OR (L = 16 AND VAL(0$(37 
, 2)) = 16) THEN PRINT M$(26); : GOSUB 1050 : GOTO 150 

390 RETURN 

400 FOR A = 1 TO LEN (R$ ( L , 2))/2 STEP 2 : IF MID$(R$(L, 2), A, 2 

) = LEFT$ (N $ , 2) THEN GOTO 410 ELSE NEXT : PRINT "You can't go 
that direction."; : GOSUB 1050 : GOTO 150 
410 IF N = 10 THEN IF RND(10) = 1 THEN PRINT M$(12); : GOSUB 105 

: GOTO 180 : ELSE PRINT M$(13); : GOSUB 1050 : IF FE = 3 THE 

N FE = 7 : ELSE FE = 3 
420 IF L = 6 THEN L = FE : O$(10, 2) = STR$ (FE) : 0$(11, 2) = ST 

R$(FE) : GOSUB 790 : GOTO 150 
430 IF (VAL(O$(30, 2)) = AND L = 17) AND (N = 27 OR N = 30) TH 

EN PRINT M$(30); : GOSUB 1050 : GOTO 150 
440 IF N = 19 THEN PRINT M$(24); : GOSUB 1050 

450 L5 = L : L = VAL (MID$ (R$ (L , 2), A + LEN (R$ (L , 2))/2, 2)) : G 
OTO 970 

460 GOSUB 1080 : GOSUB 470 : 0$(N, 2) = STR$ (L) : GOSUB 790 : PR 

INT M$(5); : NO = NO - 1 : GOSUB 1050 : GOTO 150 
470 IF N = 2 THEN Fl = : ELSE IF N = 14 THEN F2 = : ELSE IF 

N = 28 THEN F5 = 
480 IF L = 11 THEN IF VAL(0$(24, 2)) = 11 THEN IF N = 26 THEN PR 

INT M$(31); : GOSUB 1050 : 0$(26, 2) = "0" : 0$(24, 2) = "0" : 
GOSUB 790 : NO = NO - 1 : GOTO 150 
490 IF L = 12 AND NT = 2 THEN PRINT M$(34); : GOSUB 1050 : 0$ (N 

+ 2, 2) = "12" : 0$(N, 2) = "0" : GOSUB 790 : NO = NO - 1 : GO 

TO 150 
500 RETURN 

510 NH = 1 : PRINT "You are holding: "; : FOR A = 1 TO : IF VA 
L(0$(A, 2)) = 99 THEN NH = : IF LEN(0$(A, 1)) + 2 > 64 - POS 
(0) THEN GOSUB 1050 : PRINT 0$(A, 1); ". "; : ELSE PRINT 0$(A, 

l); ". "; 

520 IF (Fl = 1 AND A = 2) OR (F2 = 1 AND A = 14) OR (F5 = 1 AND 

A = 28) THEN GOSUB 1050 : PRINT "which you are wearing. "; 
530 NEXT : IF NH = 1 THEN PRINT "nothing special."; 
540 GOSUB 1050 : GOTO 150 

550 GOSUB 1080 : IF N <> 2 AND N <> 14 AND N <> 28 THEN PRINT M$ 
(8); : GOSUB 1050 : GOTO 150 : ELSE IF N = 2 THEN Fl = 1 : ELS 
E IF N = 14 THEN F2 = 1 : ELSE IF N = 28 THEN F5 = 1 

560 PRINT M$(5); : GOSUB 1050 : GOTO 150 

570 IF VAL(0$(1, 2)) <> 99 THEN PRINT M$(1I); : GOSUB 1050 : GOT 
150 

580 IF L <> 2 OR F3 = 1 THEN PRINT M$(9); : GOSUB 1050 : GOTO 15 
: ELSE F3 = 1 : PRINT M$(10); : GOSUB 1050 : 0$(13, 2) = "2" 
: GOSUB 790 : GOTO 150 

590 GOSUB 1100 : GOSUB 600 : IF 0$(N, 3) = "" THEN PRINT "nothin 
g special."; : GOSUB 1050 : GOTO 150 : ELSE PRINT 0$(N, 3); : 
GOSUB 1050 : GOTO 150 



236 BASIC Adventures 



Arctic Adventure 



600 IF N = 13 AND VAL(0$(14, 2) ) = THEN PRINT M$(10); : GOSUB 
1050 : 0$(14, 2) = STR$.(L) : 0$(15, 2) = STR$ (L) : GOSUB 790 : 
RETURN 

610 IF N = 9 THEN PRINT M$(23); : GOSUB 1050 : 0$(18, 2) = "2" : 

GOSUB 790 : RETURN 
620 IF N = 23 THEN PRINT "The Eskimo comments:"; : GOSUB 1050 : 

PRINT CHR$(34); "Drop your treasures here and I'll give you su 

pplies."; CHR$(34); : GOSUB 1050 : RETURN 
630 IF N = 2 THEN IF VAL(0$(26, 2)) = THEN PRINT M$(10); : GOS 

UB 1050 : 0$(26, 2) = STR$(L) : GOSUB 790 : GOTO 150 
640 RETURN 

650 PRINT "USE the radio and make contact with the base."; : GOS 

UB 1050 : GOTO 150 
660 GOSUB 1080 : IF N <> 15 THEN PRINT "Huh?"; : GOSUB 1050 : GO 

TO 150 : ELSE PRINT M$(14); : GOSUB 1050 : PRINT CHR$ ( 34 ) M$ (RN 

D(6) + 14); CHR$(34); : GOSUB 1050 : GOTO 150 
670 GOTO 180 

680 GOSUB 1080 : IF N <> 26 THEN PRINT M$(27); : GOSUB 1050 : GO 
TO 150 : ELSE PRINT M$(28); : GOSUB 1050 : 0$(N, 2) = "0" : GO 
TO 150 

690 GOSUB 1100 : IF N <> 13 AND N <> 27 THEN PRINT "Huh?"; : GOS 

UB 1050 : GOTO 150 
700 IF N = 13 THEN PRINT M$(29); : GOSUB 1050 : GOTO 150 : ELSE 

IF VAL (0$ (30, 2)) = THEN PRINT M$(30); : GOSUB 1050 : GOTO 1 

50 

710 GOSUB 1080 : IF N <> 18 THEN PRINT "Huh?"; : GOSUB 1050 : GO 
TO 150 

720 IF L <> 13 THEN PRINT M$(ll); : GOSUB 1050 : GOTO 150 : ELSE 
PRINT M$(10); : GOSUB 1050 : PRINT M$(32); : GOSUB 1050 : 0$ ( 
29, 2) = "13" : 0$(18, 2) = "0" : NO = NO - 1 : GOSUB 790 : GO 
TO 150 

730 GOSUB 1100 : IF 0$(29, 2) <> "99" THEN PRINT M$ ( 1 1 ) ; : GOSUB 
1050 : GOTO 150 

740 IF VAL(O$(30, 2)) <> THEN PRINT M$(29); : GOSUB 1050 : GOT 

150 : ELSE PRINT M$(5); : GOSUB 1050 : O$(30, 2) = "17" : 0$ 

(27, 2) = "0" : GOSUB 790 : GOTO 150 
750 PRINT "This adventure has no score."; : GOSUB 1050 : PRINT " 

The object is to get back to your base."; : GOSUB 1050 : GOTO 

150 

760 GOSUB 900 : FOR A = 1 TO : PRINT#-1, 0$(A, 2); : NEXT : PR 
INT#-1, L, Fl, F2, F3, FE : PRINT' "Done."; : GOSUB 1050 : GOTO 
150 

770 GOSUB 900 : FOR A = 1 TO : INPUT#-1, 0$(A, 2); : NEXT : IN 
PUT#-1, L, Fl, F2, F3, FE : PRINT "Done."; : GOSUB 1050 : GOSU 
B 790 : GOTO 150 

780 GOTO 150 

790 PRINT@ 0, "You are "; R$(L, 1); ". Obvious exits: "; CHR$(3 
0) ; 

800 FOR A = 1 TO LEN (R$ (L , 2))/2 STEP 2 : D$ = MID$(R$(L, 2), A, 

2) : IF D$ = "WE" THEN PRINT "West. "; 
810 IF D$ = "NO" THEN PRINT "North. "; : ELSE IF D$ = "SO" THEN 

PRINT "South. "; : ELSE IF D$ = "EA" THEN PRINT "East. "; 
820 IF D$ = "OU" THEN PRINT "Out. "; : ELSE IF D$ = "UP" THEN PR 

INT "Up. "; ELSE IF D$ = "DO" THEN PRINT "Down. "; 
830 NEXT 



A . - BASIC Adventures 237 

Arctic Adventure 



840 NH = 1 : PRINT ""; : FOR A = 1 TO 6 : PRINT CHR$(30); "" : N 
EXT : PRINTS 64, "You see: " ; CHR$(30); : FOR A = 1 TO O : IF 
VAL(0$(A, 2)) = L THEN GOSUB 870 

850 NEXT : IF NH = 1 THEN PRINT "nothing special."; CHR$(30); 

860 PRINT@ 960, ""; : RETURN 

870 NH = : IF 64 - POS(0) > LEN (0$ (A , 1)) + 2 THEN PRINT 0$(A, 

I); ". "; : ELSE PRINT ""; 0$(A, 1); ". "; 
880 RETURN 
890 RETURN 

900 PRINT "Read tape, Press ENTER..."; 

910 A$ = INKEY$ : IF A$ <> CHR$(13) THEN GOTO 920 : ELSE GOSUB 1 
050 : RETURN 

920 GOSUB 1080 : GOSUB 950 : IF N = 34 THEN GOTO 960 

930 PRINT "Bang!"; : GOSUB 1050 : IF L <> 2 THEN PRINT "nothing 

happens."; : GOSUB 1050 : GOTO 150 : ELSE GOSUB 940 : PRINT M$ 

(37); : GOSUB 1050 : 0$(28, 2) = "2" : GOSUB 790 : GOTO 150 
940 IF VAL(0$(28, 2)) <> THEN PRINT "nothing happens."; : GOSU 

B 1050 : GOTO 150 : ELSE RETURN 
950 IF N <> 34 AND N <> 25 THEN PRINT "You can't fire that!"; : 

GOSUB 1050 : GOTO 150 : ELSE RETURN 
960 PRINT "WHOOSH!"; : GOSUB 1050 : IF L = 11 THEN PRINT M$(38); 
: GOSUB 1050 : GOTO 150 : ELSE IF L = 16 THEN PRINT M$(39); : 
GOSUB 1050 : 0$(37, 2) = "0" : GOSUB 790 : GOTO 150 
970 IF (L = 19 AND VAL(0$(35, 2)) =0) THEN PRINT "You can't go 

that way."; : GOSUB 1050 : GOTO 150 
980 IF L = 16 AND L5 ■ 15 THEN GOSUB 790 : PRINT M$(40); : GOSUB 

1050 : GOTO 180 : ELSE GOSUB 790 : GOTO 150 
990 PRINT CHR$(34); RIGHT$(I$, LEN(I$) - Q) ; CHR$(8); CHR$(34); 

: GOSUB 1050 

1000 IF N = 40 THEN PRINT "Who do you think you are, Scott Adams 

?"; : GOSUB 1050 : GOTO 150 
1010 IF N = 39 THEN IF L <> 19 THEN PRINT "Nothing happens."; : 

GOSUB 1050 : GOTO 150 
1020 PRINT M$(41); : GOSUB 1050 : L = 20 : GOSUB 790 : PRINT M$ ( 

42) ; : GOTO 180 
1030 GOTO 150 
1040 GOTO 1040 

1050 X = USR(0) : PRINTS 960, CHR$(30); : RETURN 

1060 IF VAL(0$(N, 2)) <> L THEN PRINT "That isn't here."; : GOSU 

B 1050 : GOTO 150 
1070 RETURN 

1080 IF VAL(0$(N, 2)) <> 99 THEN PRINT "You don't have that."; : 

GOSUB 1050 : GOTO 150 
1090 RETURN 

1100 IF VAL(0$(N, 2)) <> 99 AND VAL(0$(N, 2)) <> L THEN PRINT "T 

hat isn't here."; : GOSUB 1050 : GOTO 150 
1110 RETURN 

1120 DATA 33, 128, 62, 17, 64, 62, 1, 128, 1, 237, 176, 201 
1130 DATA "in an igloo", OU02, on a snowy plain, WESOIG030401 , b 

y an ocean, OCWAFLEA05050602 , near a snow-covered cave, NOCA02 

08, in the ocean, DOEA0903, on an ice floe, WE01, on the bank 

of an ocean, WEFL1006 
1140 DATA in the neck of a cave, OUNO0411, on the floor of the o 

cean, UPEA0515, in an Eskimo village, EATRPOESHO0712121313 



238 BASIC Adventures 



Arctic Adventure 



1150 DATA in a cave, SODO0814, in a trading post, OUSL1019, in a 

n Eskimo's home, OU10, in a downward tunnel 
1160 DATA UPD01117, in the ocean at a wrecked ship, WESHWR091616 

, on the deck of a wrecked ship, SOHA1518, at the bottom of a 

tunnel, UPHOD0141818 , in a wrecked ship, UPS01716 
1170 DATA in a dog sled, WE12, at the base, NOEASOWE01020304 
1180 DATA Shovel, 1, , Warm coat, 1, , North, , , South, , , Eas 

t, , , West, , , Out, , , Up, , , Small igloo, 2, , Ice floe, 

3, it's in the ocean, ocean, 3, , , , , Large chest, 0, , Divi 

ng suit, 0, your size, radio, 0, 
1190 DATA Cave, 4, , Down, , , Ice brick, 0, , Trading post, 10, 
, Eskimo home, 10, , Eskimo, 12, , Cabinets full of supplies, 
12, , Sign, 12, "The sign reads: We trade treasures for suppl 

ies.", Polar bear, 11, , Flare gun, 11, 
1200 DATA Rations, 0, , Door in floor, 17, It's locked, Weighted 

boots, 0, , Key, 0, , Hole in floor, 0, , Cozy fire 
1210 DATA 13, , *Bronze Medallion*, 18, , *Ancient Rum*, 16, , H 

arpoon Gun, 0, , Dogsled, 0, , , , , Angry octopus, 16, , Wrec 

ked ship, 15, 
1220 DATA Mush, 0, , Yoho, 0, , Hatch, 16, 
1230 RETURN 

1240 DATA "GETTAKGRAGO RUNCLIENTDROTHRIN VWEADIGEXASEALOOHELUSEQU 
IENDEATOPEMELUNLSCOSAVLOASHOFIRSAYYELSHO" , "010010010020020020 
02003003004005006007007007008009010010011012013014015016017018 
018019019019" 

1250 DATA "SHOCOANORSOUEASWESOUTUP IGLSMAFLOOCEWAT* * *CHELARDI VS U 

ITWORADCAVDOWICEBRITRAPOSHOMESKCABS UPSIGPOLBEAFLARATFOODOOBOOW 

EIKEYHOLFIRBROMEDRUMHARSLEDOGGUNOCTWRESHIMUSYOH 
1260 DATA 001002003004005006007008 009009010011011012013013014014 

0150150160170180180190190 200 210220220 230240240 250 260 260270 28 2 

80290300310320320330340350350360370 38 38039040 
1270 DATA 00100100 300300300300 300 300300 3003003003003001001001001 

00100100300300100100 300300300300 300300300 300 30 0100100100300100 

100100100300 300200 200100300 300 300 300 300 300 2002 
1280 DATA It's embedded in the ice., That isn't here., You don't 
have that., That's impossible!, Okay., It's very cold here!, 

You die of exposure..., You can't wear that., You find nothing 

., You find something. 
1290 DATA You're missing something., The ice floe breaks! You fa 

11 through to your death., The ice flow floats..., A crackling 
message from the base comes through... 
1300 DATA EXAMINE everything closely!, Say MUSH to get to the ba 

se., Shoot a flare if there's an emergency., Wild animals are 

*VERY* hungry!, Weight yourself down., Come back here when you 

' re done . 

1310 DATA You can't breathe! You drown., You float to the surfac 

e..., An ice-brick came loose., The Eskimo says HOWDY!, Your a 

rms'are full, The beast won't let you. 
1320 DATA Yechh!, "Could use a little salt, but not bad...", It' 

s already open., It's locked., The bear gobbles it and walks o 

ff., The fire melts it. 
1330 DATA There's nothing here to unlock., The Eskimo takes it a 

nd brings you something. 



Arctic Adventure 



BASIC Adventures 239 



1340 DATA There's more than one gun in this game. Say something 

like, SHOOT FLARE GUN or GET HARPOON GUN., A plane flies by an 

d drops something. 
1350 DATA It doesn't bother the creature a bit., The creature mo 

ans in pain and slithers away to suffer. 
1360 DATA The octopus squeezes you to death!, The dogs pull your 
sled across many miles..., To the base! You've solved the adv 

enture i 

1370 CLS : PRINT "Arctic Adventure 

By Harry McCracken 

I will describe your surroundings at the top of the screen. 
Tell me what you want to do with mostly two-word commands such 

1380 PRINT "as " CHR$(34) "GET BRICK" CHR$(34)", " CHR$ ( 34 ) " INVEN 
TORY" CHR$(34)", " CHR$ ( 34 ) "HELP" CHR$(34)",- and " CHR$(34)"ME 
LT ICE" CHR$(34) "." 

1390 PRINT " Use " CHR$ ( 34 ) "SAVE " CHR$(34)" and " CHR$(34)"LO 
AD" CHR$(34)" to store and recover a game in 

progress to tape." 

1400 PRINT " Remember to EXAMINE things, and to think logical 

iy. 

Good Luck on your adventure!" 

1410 RETURN 




240 BASIC Adventures 



Arctic Adventure 



Chapter Eighteen 

Adventureland 



by Scott Adams 



Scott Adams is the undisputed guru of 
microcomputer adventure, and is considered one 
of the pioneers of the microcomputer software 
business. When all that was being offered were 
simple Star Trek imitations, he produced the 
original adventure and literally founded a new 
classification of computer games. 

Adventureland is the 16K Level II version of the 
minicomputer game of the same name. The listings 
here are the BASIC version of what later became 
the first of many machine language adventures from 
Scott's company, Adventure International. 

There are two listings to this adventure. The first 
generates a data tape (or file) which contains the 
code and the data for the adventure. The second, 
an interpreter, actually plays the adventure. 




The complexity of the code makes this the most 
difficult of all adventures to key in. It must be 
checked and double checked for errors. If any 
mistake is made in keying in the code, the logic of 
the program will be bad and there is a good 
possibility that the puzzle will not be solved. 
Note: The listing for Adventureland (the second of 
he two listings) has some confusing information in 

r e i\i? Saw 40 / EssentiaI, V> if you are keying in this 
for 16K RAM, Level II, Model I only, the information 
will be correct. However, the test in line 40 may 
bomb. I he test may be eliminated entirely with no ill 
effects on the program. It was a test which was 
added after all the code was entered and tested Its 
prime purpose was to test for a good tape load of 
the program. 

In this listing the caret is used to denote the up- 
arrow key (raise to a power). 



BASIC Adventures 241 



10 

20 
30 
40 
50 
60 



**** BE SURE AND USE A C-60 TAPE FOR YOUR DATA TAPE I I I I 
ADVENTURE DATA TAPE BUILDER. BUILDER/BAS 
VERSION 1.3 (c) SCOTT ADAMS '80. 

ADVENTURE INTERNATIONAL, BOX 3435, LONGWOOD, FL 32750 
PHONE (305) 862-6917 

BUILDS DATA TAPE FOR ORIGINAL BASIC VERSION OF ADVENTURE 

LAND 

70 'PLEASE NOTE ON LINES THAT SUDDENLY GO TO THE 
NEXT LINE LIKE 

THIS, USE <DOWN ARROW> KEY WHICH IS RIGHT ABOVE 
THE LEFT HAND SHIFT KEY ON YOUR TRS-80! 

80 DATA 60, 151, 59, 33, 5, 11, 13, 3, 125, 71, 3, 75, 161, 386, 
160, 200, 0, 17612, 0, 10, 401, 420, 400, 146, 0, 1852, 8850, 
8, 421, 0, 0, f 0, 2011, 0, 8, 521 

90 DATA 520, 260, 0, 0, 2609, 7800, 100, 108, 760, 820, 420, 100 
, 8312, 10264, 100, 484, 0, 0, 0, 0, 5613, 0, 5, 141, 140, 20, 
246, 

100 DATA 6062, 0, 5, 406, 426, 400, 442, 146, 7845, 0, 8, 482, 1 
52, 0, 0, 0, 2311, 0, 100, 104, 0, 0, 0, 0, 8550, 0, 50, 161, 
246, 160, 1100, 0, 7259, 7800, 100 
110 DATA 148, 140, 940, 500, 0, 10262, 9900, 30, 841, 426, 406, 
400, 0, 7845, 0, 50, 542, 141, 0, 0, 0, 10504, 9150, 100, 248, 
642, 720, 640, 700 
120 DATA 8005, 7950, 100, 248, 542, 1040, 540, 0, 8005, 0, 100, 
28, 49, 20, 40, 0, 6360, 8700, 25, 288, 260, 280, 0, 0, 7860, 
9150, 100, 248, 240, 0, 0, 0, 9660 
130 DATA 0, 100, 269, 260, 0, 0, 0, 16558, 17357, 100, 28, 48, 2 
0, 40, 0, 4110, 9000, 4366, 22, 0, 0, 0, 0, 6900, 0, 4374, 0, 
0, 0, 0, 0, 9750, 0, 4404 
140 DATA 682, 0, 0, 0, 0, 6900, 0, 4407, 82, 0, 0, 0, 0, 6900, 
, 1521, 142, 421, 420, 140, 0, 8902, 450, 1542, 462, 141, 460, 
0, 0, 7800, 0, 1521, 142, 401, 400 
150 DATA 140, 0, 8902, 450, 2742, 461, 460, 502, 780, 500, 8864, 
8005, 2742, 461, 460, 0, 0, 0, 7950, 0, 1523, 482, 146, 0, 0, 
0, 2311, 0, 1523, 482 
160 DATA 141, 266, 0, 0, 2400, 0, 1523, 482, 141, 261, 260, 520, 
8902, 0, 1533, 0, 0, 0, 0, 0, 9900, 0, 4350, 0, 0, 0, 0, 0, 9 
600, 0, 5100, 0, 0, 0, 0, 0, 9900, 
170 DATA 3450, 581, 344, 460, 0, 0, 8118, 8614, 2125, 623, 566, 
0, 0, 0, 2850, 0, 2125, 621, 561, 620, 0, 0, 3021, 9209, 6794, 
0, 0, 0, 0, 0, 17100, 
180 DATA 2125, 622, 561, 620, 240, 0, 10555, 8720, 184, 404, 702 
, 380, 0, 0, 8164, 0, 1525, 24, 806, 0, 0, 0, 2400, 0, 1525, 2 

4, 801, 800, 620, 0, 8902, 0, 2725 

190 DATA 621, 620, 800, 0, 0, 8902, 3450, 2125, 362, 561, 0, 0, 

0, 3300, 0, 6803, 0, 0, 0, 0, 0, 17100, 0, 185, 384, 0, 0, 0, 

0, 3750, 0, 1510, 762, 760 
200 DATA 505, 0, 0, 7800, 0, 2710, 761, 760, 582, 20, 0, 7986, 8 

700, 6343, 921, 920, 0, 0, 0, 509, 0, 1513, 122, 261, 260, 240 

, 0, 8902, 0, 900, 384, 420 
210 DATA 726, 0, 0, 8164, 0, 900, 424, 380, 0, 0, 0, 8164, 0, 18 

5, 424, 502, 0, 0, 0, 3900, 0, 185, 424, 505, 440, 0, 0, 8164, 
0, 7815, 0, 0, 0, 0, 0, 10650, 

220 DATA 204, 682, 0, 0, 0, 0, 7650, 0, 2723, 521, 502, 520, 480 
, 280, 4259, 8008, 1513, 122, 266, 0, 0, 0, 2400, 0, 5751, 62, 
0, 0, 0, 0, 300, 0, 207, 40, 102 




242 BASIC Adventures 



Aduentureland Adventureland 



BASIC Adventures 243 



410 DATA 1551, 62, 0, 0, 0, 0, 1711, 0, 166, 1042, 480, 0, 0, 0, 
8164, 0, 1549, 0, 0, 0, 0, 0, 16611, 0, 2100, 561, 365, 0, 0, 
0, 3600, 0, 5250, 0, 0, 0, 
420 DATA 0, 150, 0, 3450, 581, 347, 340, 0, 0, 8118, 8464, 7050, 
24, 0, 0, 0, 0, 16605, 0, 3611, 226, 0, 0, 0, 0, 5700, 0, 705 
0, 404, 0, 0, 0, 0, 16616, 15450, 6774 
430 DATA 0, 0, 0, 0, 0, 9750, 0, 166, 84, 100, 0, 0, 0, 8164, 0, 
1542, 462, 482, 146, 0, 0, 2311, 0, 7050, 0, 0, 0, 0, 0, 150, 
0, 1200, 0, 0, 0, 0, 0, 197 
440 DATA 0, 3600, 0, 0, 0, 0, 0, 16800, 0, AUT, ANY, GO, NORTH, 
*ENT, SOUTH, *RUN, EAST, *WAL, WEST, *CLI , UP, JUM, DOWN, BEA, 
NET, CHO, FIS, *CUT, AWA, TAK 
450 DATA MIR, *GET, AXE, *PIC, *AX , *CAT, WAT, LIG, BOT, *TUR, G 
AM, *LAM, HOL, *BUR, LAM, DRO, *ON , *REL, OFF, *SPI, DOO, *LEA 
, MUD, STO, *MED 
460 DATA AWA, BEE, THR, SCO, TOS, GAS, QUI, FLI , SWI , EGG, RUB, 
OIL, LOO, *SLI, *SHO, KEY, *SEE, HEL, DRA, BUN, SCO, INV, INV, 
LED, YEL, THR, WAK , CRO, UNL 
470 DATA BRI, REA, BEA, OPE, DRA, ATT, RUG, *HIT, RUB, DRI , HON, 
*GAT, FRU, BUN, OX, FIN, RIN, *LOC, CHI, HEL, *BIT, SAY, BRA, 
WIN, SIG, DOO, BLA 
480 DATA SCR, WEB, SAV, *WRI , , SWA, , LAV, , ARO , , HAL, , TRE , 
, *STU, , FIR, 0, 7, 10, 1, 0, 24, , 23, 1, 1, 25, 0, 0, Dism 
al swamp, 0, 0, 0, 0, 0, 1 
490 DATA Top of a tall cypress tree, 1, 1, 1, 1, 1, 4, Large hoi 
low damp stump in the swamp, 0, 0, 0, 0, 3, 5, Root chamber un 
der the stump, 0, 
500 DATA 0, 0, 4, 0, Semi-dark hole next to root chamber, 0, 0, 

0, 0, 5, 7, Long down-sloping hall, 8, 9, 0, 27, 6, 12 
510 DATA Large cavern, 0, 7, 0, 0, 0, 0, Large 8-sided room, 7, 

0, 0, 0, 20, 0, Royal Ante-room, 11, 10, 26, 1, 0, 26 
520 DATA *I'm on the shore of a lake, 11, 11, 23, 11, 0, 
530 DATA Forest, 13, 15, 15, 0, 0, 13, Maze of pits, 0, 0, 0, 14 
, 12, 0, Maze of pits, 17, 12, 13, 16, 16, 17, Maze of pits, 1 
2, 0, 13, 12, 13 

540 DATA 0, Maze of pits, 0, 17, 0, 0, 14, 17, Maze of pits, 17, 

12, 12, 15, 14, 18, Maze of pits, 0, 0, 0, 0, 17, 
550 DATA Bottom of a chasm. Above me is 

a pair of ledges. One has a bricked-up window across its face. 
The other faces a throne room 

560 DATA 0, 0, 0, 20, 0, 0, *I'm on a narrow ledge by a chasm. A 

cross the chasm is 
the throne room, 0, 0, 0, 0, 0, 9 

570 DATA Royal chamber, 0, 0, 0, 0, 0, 0, Narrow ledge by a thro 
ne room. 

Across the chasm is another ledge, 0, 0, 0, 0, 0, 21 
580 DATA Throne room, 10, 1, 10, 11, 0, 0, Sunny meadow, 0, 0, 
, 0, 0, 

590 DATA *I think I'm in real trouble now. There's a fellow here 
wi th 

a pitchfork and a pointed tail. ...Oh Hell! 

600 DATA 11, 0, 1, 11, 0, 0, Hidden grove, 0, 0, 0, f 0, 0, Qui 
ck-sand bog, 0, 0, 7, 0, 0, 0, Memory RAM of a TRS-80. I took 
a wrong turn!, 0, 0, 0, 0, 0, 11 



244 BASIC Adventures 



Adventureland 



610 DATA Top of an oak. 

620 DATA c , ' ' w '-' !, ''0f0,0,0 

e misty roo m with s^nce' ' 24 ' U ' 24 ' 28 ' ^ Lar g 

unreadable letters over a iT -i, 

630 DATA Chop it down? L r^/* 1 ^' ' „ Nothin 9 happens 

ells something. Awakens ^t / 631 ^ hlt the Spot! ' Dra 9° n sm 
its locked wakens. Attacks me!. Lock shatters, I can't— 

and vanished, 

6 60 M DATA t fi --Cwho?* ffi"" 

ve D no TA co 6 n e ta r i„ e e a r tS ^eT ff aSl ^ 6ees "i„ g me, I- 

670 DATA Something I' m k < SUffocated and disappeard. 

es^t's Ga %"--r^ g u p V , lb i r n at m e y S fe,' t0 

^teT b b r e rr t t r n T e h d at be „o°nft it 1" W GaS ^ 

ear won't let me 11 lqnlte ' How? Jump?, B 

Bea T r t^n^iVmeT^ J"" 6 " 3 " B «" <° adde " 

700 DATA t i ^ 2 n ? ] ' It: soaks mto the ground. 

740 hata >h! u ' 1 don 11 9et it. I hope you do. 

740 DATA The bees attack the dragon which gets so annoyed it get 

and^flies away..., Mag ic oil attracts magic lamp. Lamp is now fu 

76 5 HE j£ : ight! 

thinT T T he°n d v r a y nishe S s h . dle - * ge " ie W"- D '°P* some 

770 DATA A glowing genie appears. Says -Boy you're selfish- Take 

something and then makes -me- vanish' 

780 DATA No. Its too hot, Not here., 'Try the swamp, Use one word 
79 C0RE TA Try " _> L ° OK - JUMP - SWIM - CLI MB.THROW.FIND.TAKE. INVENTORY. S 

by itself!! 

810 DATA If you ever want a hint on something try HELP r-h ci 
gn in the meadow!, You may need magic words here 

820 DATA A voice booooms out, Please leave it alone Can onlv t-h 
row ax, Medicine is good for bites., I don't know' where it^is 



Adventureland 



BASIC Adventures 245 



DATA To win get 100 when you say SCORE. A Treas ure * s 
anything with an * in the name, Blow it up., Fish escape back 

840 X Sa?A 0. Dark Hole, 4, *Pot of rubiesVRUB/. 4, Spi 

der web with writing on it, 2 tr « 0. Cypress 

850 DATA -Hollow- stump and remains of • .ff,"®" 1 , S^oiden f ish*/ 
Tree, 1, Water, 10, Evil Smelling Mud/MUD/, 1, *Golden tisn / 

Se^DATA^it Brass Lamp/LAM/ , 0, Old Fashioned Brass Lamp/LAM/ , 
3, Rusty Axe (Magic word BUNVON on it)/AXE/, 10 

890 DATA Infected Chigger Bites, 0, Floating Pa es of Oily Sli 
me, 1, *Royal HoneyVHON/, 8, Large Af rican Bees, 8 

920 DATA Sign here says -In many Cases Mad is Good. In others... 

23, Stream of Lava, 18 m 
930 DATA Bricked up Window with a Hole in J;*- rrown*/CRO/, 
Beyond is a Ledge., 0, Loose Fire Bricks, 0, *Gold Crown /CRO/ , 

940 2 DATA *Magic Mirror*, 21, Sleeping Bear, 0, Empty Wine Bladde 
r/BLA/, 9, Broken Glass, 0, Chiggers/CHI/ , 1, Dead Bear, 

9 50 DATA *Dragon Eggs* (very rare)/EGG/, 0, Lava Stream with Bri 
ck Dam. 0. *Jeweled Fruit*/FRU/, 25 , _. */r> T M 

4 60 DATA * Small Statue of a Blue Ox*/OX/, 26, *Diamond RingVRIS 

9 /, T *Diamond BracletVBRA/, 0, Strange scratchings on rock s 

avs -Aladin Was Here-, 14 -«-4^r» ^ 

970 DATA Sign says -Limbo. Find right exit and live again!-, 33, 
Smoking Hole. Pieces of Dragon and gore., D0 intin 
980 DATA Sign says -No Swimming allowed here-, 10, Ar r °" P?* nt * n 
g down, 17? Dead Fish/FIS/, 0, *Firestone* (cold now) /FIR/, ». 
Sign says -Paul's Place- 

990 DATA 25, Trees, 11, , 0, r » 1CC co orc . rpctorf 
1000 CLEAR 900 : DEFINT A - Z : POKE ^553, 255 : RESTORE 
1010 CLS : INPUT "=DISK> OR >TAPE>"; TP$ : IF LEFT$ (TP$ , 1) 

1020 T CLS flNPUT "PREPARE DATA TAPE <HIT ENTERS; TP$ : D = - 1 
: GOTO 1040 

[III CLS = • PRINT© IV I t) -Ad^nture Data Builder - Working" 
\ltl READ-Il" S NL, RL', MX, R, TT, LN , LT, ML, TR , PRINT #D, 

10 ^oVz i^ll' 2 h VVok A XX X = '.'TOl : FOR , = TO 7 : 

READ CA(XX, Y) : NEXT Y : NEXT XX : X = 



246 BASIC Adventures 



Adventureland 



1080 Y = X + 1 : PRINT# D, CA(X, 0), CA(X, 1), CA(X, 2), CA(X, 3 
), CA(X, 4), CA(X, 5)CA(X, 6), CA(X, 7), CA(Y, 0), CA(Y, 1), C 
MY 2), CA(Y, 3), CA(Y, 4), CA(Y, 5), CA(Y, 6), CA(Y, 7) i NE 

A I la 

1090 FOR X = TO NL : FOR Y = TO 1 : READ NV$(X, Y) : NEXT Y, 
X 

1100 FOR X =0 TO RL : READ RM(X, 0), RM(X, 1), RM(X, 2), RM(X, 

3), RM(X, 4), RM(X, 5), RS$ (X) : NEXT 
1110 FOR X = TO ML : READ MS$ (X) : NEXT 
1120 FOR X = TO IL : READ IA$ (X) , IA(X) : NEXT 

1130 IF D = 1 THEN FOR X = TO NL STEP 10 : FOR Y = TO 1 • FO 
R Z = TO 9 : PRINT# D, NV$ (X + Z, Y) : NEXT Z, Y, X : GOTO 1 
150 

1140 FOR X = TO NL STEP 1 : FOR Y = TO 1 : PRINT# D, NV$ (X 
t X \ Y) ' " V$(X + 2 ' Y >' + 3, Y), NV$(X + 4, Y), NV$(X + 

Y) :'NEx| ( ^ + X 6 ' NV$U + ? ' Y) ' NV$U + 8 ' Y) ' NV$(X + 9 ' 

1150 IF D = 1 THEN FOR X = TO RL : FOR Y = TO 5 : PRINT* D 
RM(X, Y) : NEXT Y : PRINT# D, RS$ (X) : NEXT X : GOTO 1170 

M?v F °?/ o ? V T0 / L : PRINT# °' RM(X ' >' RM < X ' RM (X, 2), R 

M(X, 3), RM(X, 4), RM(X, 5), RS$ (X) : NEXT 

1170 FOR X = TO ML : PRINT# D, MS$ (X) : NEXT 

1180 IF D = 1 THEN FOR X = TO IL : PRINT# D, IA$ (X) : PRINT# D 

, IA(X) : NEXT : GOTO 1200 
1190 FOR X = TO IL : PRINT# D, IA$ (X) , IA(X) : NEXT 
1200 IF D = 1 THEN PRINT : PRINT "Verifying Data" : CLOSE : OPEN 

"I", 1, "ADV/DAT" : GOTO 1220 
1210 INPUT "Rewind tape to be verified"; TP$ 

1220 POKE 16553, 255 : RESTORE : FOR X = 1 TO 11 : READ A0 : NEX 

WJt tTo? °' A0 ' A1 ' A2 ' A3 ' A4 ' A5 ' A6 ' A7 ' A8, A9, B0 
1240 IF 80 <> TR OR A0 <> IL OR Al <> CL OR A2 <> NL OR A3 <> RL 
OR A4 <> MX OR A5 <> R OR (A6 <> TT) OR A7 <> LN OR A8 <> LT 
OR A9 <> ML THEN 1350 

12 f f? R \: T ° CL ST£P 2 : INPUT# D ' A < ' )' A ( ' U, A(0, 2 

^H'*™ l £ 2) ' AU ' 3) ' A(1 ' 4) ' A(1 ' 5 >' A ( 1 , 6), A(l, 7) 

1260 EOR Y = TO 1 : FOR Z = TO 7 : READ A0 : IF A (Y Z) <> A 

THEN 1350 ELSE NEXT Z, Y, X 
1270 IF D = 1 THEN FOR X = TO NL STEP 10 : FOR Y = TO 1 • FO 

p?qp Lv2 9 : INPUT# D ' A$ : IF NV$ < X + Z ' Y ) <> A$ THEN 1350 
ELSE NEXT Z, Y, X : GOTO 1290 

128 aJ? R \^^ T ° ^ STEP 10 • FOR Y = TO 1 : INPUT# D, A$(0), 
A A$(3) ' A$(4) ' A$(5) ' A$ ( 6 )' A ^ 7 )' A $(8 , A$(9 

NEXT Z , Y, X T ° 9 : ^ NV$U + Z ' Y) ° A$U) THEN 1350 ' ELSE 

1290 IF D = 1 THEN FOR X = TO RL : FOR Y = TO 5 • INPUT# D 

A i^Lc^?' Y) 9 A ™ EN 1350 ELSE NEXT Y : LINEINPUT# D, A$ 
. IF RS$(X) <> A$ THEN 1350 ELSE NEXT X : GOTO 1310 

4? F aa.^ = L T ° RL : INPUT# °' AA(0) ' AA ( 1 ) , AA(2), AA(3), AA ( 
S$ X Jp $ nJ°L Y = TO 5 : IF AA(Y) <> RM(X, Y) OR A$ <> 
KSS>(X) THEN 1350 ELSE NEXT Y, X 

131 MSSrx? T»L T ^L F ° R X = T ° ML 1 LIN EINPUT# D, A$ : IF A$ <> 
MS$(X) THEN 1350 ELSE NEXT : GOTO 1330 



Adventureland 



BASIC Adventures 247 



1320 FOR X = TO ML : INPUT# D, A$ : IF A$ <> MS$ (X) THEN 1350 
ELSE NEXT 

1330 IF D = 1 THEN FOR X = TO IL : LINEINPUT# D, A$ : INPUT# D 

, A : IF A$ <> IA$(X) OR IA(X) <> A THEN 1350 ELSE NEXT X : CL 

S : PRINT "Data Verified" : CLOSE : END 
1340 FOR X = TO IL : INPUT# D, A$, AA(0) : IF AA(0) <> IA(X) 

R A$ <> IA$(X) THEN 1350 : ELSE NEXT X : CLS : PRINT "Data Tap 

e Verified" : END 
1350 PRINT "Bad Data!" : END 




10 1 COPYRIGHT SCOTT ADAMS • 1978 

20 ' IF 16K LEVEL II MAKE LINE 30: CLEAR 5400 : DEFINT A - Z : D 

30 CLEAR 5400 : DEFINT A - Z : CLS : INPUT "<D>ISK OR <T>APE"; T 

P$ : IF LEFT$ (TP$ , 1) = "D" THEN D = 1 ELSE D = - 1 
40 ' IF 16K LEVEL II MAKE THIS LINE: IF D = - 1 IF MEM <> 4526 P 

RINT "BAD LOAD" : END 
50X=Y=Z:K=R=V:N=LL=F: TP$ = K$ : W = IP = P : 
Z$ = "I've too much to carry. Try TAKE INVENTORY" : GOSUB 1310 
: GOTO 120 

60 CLS : PRINT " *** Welcome to Adventure Land. (#4.6) *** 

" : PRINT : PRINT "Unless told differently you must find *Trea 
sures* 

and return them to their proper place!" 

70 PRINT : PRINT "I'm your puppet. Give me English commands that 

80 PRINT "consist of a verb and noun. Some examples..." : PRINT 

90 PRINT "To find out what you're carrying, you might say, TAKE 
INVENTORY 

To go into a hole, you might say, GO HOLE 
To save current game, SAVE GAME" 

100 PRINT : PRINT "You will at times need special items to do th 

ings, but I'm n 
sure you'll be a good adventurer and figure these things out. 
110 PRINT : INPUT " Happy Adventuring... Hit <ENTER> to star 

t"; K$ : CLS : RETURN 
120 R = AR : LX = LT : DF = : SF = : INPUT "Use old 'saved' 

qame"; K$ : IF LEFT$(K$, 1) <> "Y" THEN 150 
130 IF D <> - 1 THEN CLOSE : OPEN "I", 1, " ADVENT UR/OLG" : ELSE 
INPUT "Ready saved tape"; K$ : PRINT INT(IL * 5/60) + 1; "minu 
tes to load." 

140 INPUT# D, SF, LX, DF, R : FOR X = TO IL : INPUT# D, IA(X) 

: NEXT : IF D <> - 1 CLOSE 
150 GOSUB 60 : GOSUB 260 : GOTO 180 

160 INPUT "Tell me what to do"; TP$ : PRINT : GOSUB 190 : IF F P 
RINT "You use word(s) I don't know" : GOTO 160 



248 BASIC Adventures 



Aduenti 



Hid GOSUB 380 



IF IA(9) = - 1 THEN LX = LX - 1 : IF LX < THEN 

ELSE IF LX < 25 PRINT 



PRINT "Light has run out" : IA(9) = 

"Light runs out in"LX" turns ! " 
180 NV(0) = : GOSUB 380 : GOTO 160 
190 K = : NT$(0) = "" : NT$(1) = "" 

200 FOR X = 1 TO LEN (TP$ ) : K$ = MID$(TP$, X, 1) : IF K$ = " " T 

HEN K = 1 : ELSE NT$ (K) = LEFT$ (NT$ (K) + K$, LN) 
210 NEXT X : FOR X = TO 1 : NV(X) = : IF NT$ (X) = "" THEN 25 

: ELSE FOR Y = TO NL : K$ = NV$(Y, X) : IF LEFT$(K$, 1) = 

"*" THEN K$ = MID$(K$, 2) 
220 IF X = 1 IF Y < 7 THEN K$ = LEFT$(K$, LN ) 
230 IF NT$(X) = K$ THEN NV(X) = Y : ELSE NEXT Y : GOTO 250 
240 IF LEFTS (NV$ (NV(X) , X), 1) = "*" THEN NV(X) = NV(X) - 1 : GO 

TO 240 

250 NEXT X : F = NV(0) < 1 OR LEN (NT$ ( 1 ) ) > AND NV(1) < 1 : RE 
TURN 

260 IF DF IF IA(9) <> - 1 AND IA(9) <> R PRINT "I can't see. It' 

s too dark!" : RETURN 
270 K = - 1 : IF LEFT$ (RS$ (R) , 1) = "*" THEN PRINT MID$ (RS$ (R) , 

2); : ELSE PRINT "I'm in a "RS$ (R) ; 
280 FOR Z = TO IL : IF K IF IA(Z) = R PRINT ". 
Visible items here: "; : K = 
290 GOTO 320 

300 TP$ = IA$(Z) : IF RIGHT$(TP$, 1) 
TO 1 STEP - 1 : IF MID$(TP$, W, 1) 
W - 1) : ELSE NEXT W 
310 RETURN 

320 IF IA(Z) <> R THEN 340 

$) + 3 > 63 THEN PRINT 
3 30 PRINT TP$; ". "; 
340 NEXT : PRINT 
350 K = - 1 : FOR Z = TO. 

ous exits: "; : K = 
360 IF RM(R, Z) <> PRINT NV$ (Z + 1, 1); 
370 NEXT : PRINT : PRINT : RETURN 
380 F2 = - 1 : F = - 1 : F3=0 : IF NV(0) 

N 670 : ELSE FOR X = TO CL : V = CA(X, 
IF V <> RETURN 
390 IF NV(0) <> V THEN NEXT X : GOTO 1060 

V * 150 

400 IF NV(0) = THEN F = : IF RND(100) 

EXT X : GOTO 1060 
410 IF N <> NV(1) AND N <> THEN NEXT X 
420 F2=-1:F=0:F3=-1: FOR Y = 

: LL = W/20 : K = W - LL * 20 : Fl = - 1 
430 ON K + 1 GOTO 580, 460, 480, 500, 520, 530, 540, 550, 560, 5 

70, 440, 450, 470, 490, 510 
440 Fl = - 1 : FOR Z = TO IL 

NEXT : Fl = : GOTO 580 
450 Fl = : FOR Z = TO IL : 

XT : Fl =' - 1 : GOTO 580 
460 Fl = IA(LL) = - 1 : GOTO 580 
470 Fl = I A (LL) <> - 1 AND I A (LL) <> R 
480 Fl = IA ( LL) = R : GOTO 580 



= "/" FOR W = LEN (TP$ ) - 1 
= "/" THEN TP$ = LEFT$(TP$, 



ELSE GOSUB 300 : IF POS(0) + LEN (TP 



IF K IF RM(R, Z) <> PRINT "Obvi 



= 1 AND NV(1) < 7 THE 
0)/150 : IF NV(0) = 

ELSE N = CA(X, 0) - 



<= N THEN 420 



ELSE N 



GOTO 1060 
1 TO 5 : W = CA(X, Y) 



: IF IA(Z) = - 1 THEN 580 
IF IA(Z) = - 1 THEN 580 : 

GOTO 58 



ELSE 



ELSE NE 



Adventureland 



BASIC Adventures 249 



490 


Fl 


= 


IA(LL) <> : GOTO 580 




500 


Fl 


— 


IA(LL) = R OR IA(LL) = - 1 : GOTO 580 




510 


Fl 


— 


IA(LL) = : GOTO 580 




520 


Fl 


= 


R = LL : GOTO 580 




530 


Fl 


= 


IA(LL) <> R : GOTO 580 




540 


Fl 


= 


IA(LL) <> - 1 : GOTO 580 




550 


E 1 




d / n i r • r.nTn Sft0 

K s> LL. . vjUiu jow _ _ _ ^ 




560 


Fl 


— 


SF AND CINT(2~LL + .5) : Fl = Fl <> : GOTO 


580 


570 


Fl 




SF AND CINT(2~LL + .5) : Fl = Fl = : GOTO 


DOY) 


580 


F2 




F2 AND Fl : IF F2 THEN NEXT Y : ELSE NEXT X 


. f,nTD 10 60 




T P 




FOR Y = 1 TO 4 : K =(Y - l)/2 + 6 : ON Y 


i^nTH 600 


1 . 


600. 610 




600 


AC 




CA(X, K)/150 : GOTO 620 




610 


AC 




CAfX. K) - CINT(CA(X, K)/150) * 150 




620 


IF 


AC > 101 THEN 660 




630 


IF 


AC = THEN 1030 




640 


IF 


AC < 52 THEN PRINT MS$ (AC) : GOTO 1030 


1 . 8 2 0. 870 . 



650 ON AC - 51 GOTO 720, 760, 800, 820, 830, 840, 850, 820, 870, 
890, 900, 910, 920, 930, 960, 990, 1000, 1010, 1020, 770, 810 

660 PRINT MS$(AC - 50) : GOTO 1030 

670 L = DF : IF L THEN L = DF AND IA(9) <> R ^ AN D IA(9) <> - 1 . 

IF L PRINT "Dangerous to move in the dark!" 
fiftfl t f Nvm < 1 PRINT "Give me a direction, too. : GOTO niw 
690 K F = N RM(r/.v(1) - 1) : IF K < 1 IF L TBEN^INT "I fe 11 dow n 
and broke my neck." : K = RL : DF = : ELSE PRINT I can t g 

o in that direction" : GOTO 1110 
700 IF NOT L CLS 

710 R = K : GOSUB 260 : GOTO 1110 

720 L = : FOR Z = 1 TO IL : IF IA(Z) = - 1 LET L = L + 1 
730 NEXT Z 

740 IF L >= MX PRINT Z$ : GOTO 1040 

750 GOSUB 1120 : IA(P) = - 1 : GOTO 1030 

pe"; K$ : PRINT INT(IL * 5/60) + 1; "minutes" : ELSE OPEN , 

780 1 pRINTrD! U SF ( J L LX, DF, R : FOR W = TO IL : PRINT* D, IA(W) 

: NEXT : IF D <> - 1 CLOSE 
790 GOTO 1030 

800 GOSUB 1120 : R = P : GOTO 1030 

810 GOSUB 1120 : L = P : GOSUB 1120 : Z = IA(P) : IA(P) - IA(L) 

: IA(L) = Z : GOTO 1030 
820 GOSUB 1120 : IA(P) - ! GOTO 1030 
830 DF - - I s GOTO 1030 
840 DF = : GOTO 1030 
850 GOSUB 1120 

860 SF = SF OR CINT(.5 + 2~P) : GOTO 1030 
870 GOSUB 1120 

880 SF = SF AND NOT CINT(.5 + 2~P) : GOTO 1030 

890 PRINT "I'm dead..." : R = RL : DF = : GOTO 920 

900 GOSUB 1120 : L = P : GOSUB 1120 : IA(L) = P • GOTO 1030 

q 1 <a TNPUT "The qame is now over... 

Another game"; 1$ : If LEFTS (K$, 1) = THEN END : ELSE FOR X 

= TO IL : IA(X) = 12 (X) t NEXT : GOTO 120 



250 BASIC Adventures 



Aduentureland 



920 GOSUB 260 : GOTO 1030 

930 L = : FOR Z = 1 TO IL : IF IA(Z) = TR IF LEFT$ ( I A$ ( Z ) , 1) 

= "*■• LET L = L + 1 
940 NEXT Z : PRINT "I've stored"L" treasures. 
On a scale of to 100, that rates a" CINT (L/TT * 100) 
950 IF L = TT THEN PRINT "Well done." : GOTO 910 ELSE 1030 
960 PRINT "I'm carrying:" : K$ = "Nothing" : FOR Z = TO IL : I 

F IA(Z) <> - 1 THEN 980 ELSE GOSUB 300 : IF LEN (TP$) + POS(0) 

> 63 PRINT 
970 PRINT TP$; ".",; : K$ = "" 
980 NEXT : PRINT K$ : GOTO 1030 
990 P = : GOTO 860 
1000 P = : GOTO 8,80 

1010 LX = LT : IA(9) = - 1 : GOTO 1030 
1020 CLS : GOTO 1030 
1030 NEXT Y 

1040 IF NV(0) <> THEN 1060 
1050 NEXT X 
1060 1 

1070 IF NV(0) = THEN 1110 
1080 GOSUB 1130 

1090 IF F PRINT "I don't understand your command." : GOTO 1110 
1100 IF NOT F2 PRINT "I can't do that... yet." : GOTO 1110 
lill/ RETURN 

1120 IP = IP + 1 : W = CA(X, IP) : P = W/20 :M=W-P*20:I 

F M <> THEN 1120 : ELSE RETURN 
1130 IF NV(0) <> 10 AND NV(0) <> 18 OR F3 THEN 1300 
1140 IF NV(1) = PRINT "What?" : GOTO 1250 
1150 IF NV(0) <> 10 THEN 1180 

1160 L = : FOR Z = TO IL : IF IA(Z) = - 1 THEN L = L + 1 
1170 NEXT : IF L >= MX PRINT Z$ : GOTO 1250 

1180 K = : FOR X = TO IL : IF RIGHT$ ( I A$ (X) , 1) <> "/" THEN 
1260 ELSE LL = LEN(IA$(X)) - 1 : TP.$ = MID$(IA$(X), 1, LL) : F 
OR Y = LL TO 2 STEP - 1 : IF MID$(TP$, Y, 1) <> "/" THEN NEXT 
Y : GOTO 1260 

1190 TP$ = LEFT$ (MID$ (TP$ , Y + 1), LN) 

1200 IF TP$ <> NV$(NV(1), 1) THEN 1260 

1210 IF NV(0) = 10 THEN 1230 

1220 IF IA(X) <> - 1 THEN K = 1 : GOTO 1260 ELSE IA(X) = R : K = 
3 : GOTO 1240 

1230 IF IA(X) <> R THEN K = 2 : GOTO 1260 : ELSE IA(X) = - 1 : K 
= 3 

1240 PRINT "Ok, "; 
1250 F = : RETURN 
1260 NEXT X 

1270 IF K = 1 THEN PRINT "I'm not carrying it" : ELSE IF K = 2 P 

RINT "I don't see it here" 
1280 IF K = IF NOT F3 PRINT "Its beyond my power to do that." 

: F = 
1290 IF K <> THEN F = 
1300 RETURN 

1310 IF D <> - 1 THEN 1420 : ELSE INPUT "Ready data tape. Hit <E 
NTER>"; 

1320 INPUT# D, IL, CL, NL, RL, MX, AR, TT, LN , LT, ML, TR 



Aduentureland 



BASIC Adventures 251 



1330 W =(IL + CL/2 + NL/10 + RL + ML)/12 : PRINT W + 1; " minute 
s to load." 

1340 DIM NV(1), CA(CL, 7), NV$(NL, 1), IA$(IL), IA(IL), RS$ (RL) , 

RM(RL, 5), MS$(ML), NT$(1), I2(IL) 
1350 FOR X = TO CL .STEP 2 : Y = X + 1 

1360 INPUT# D f CA(X, 0), CA(X, 1), CA(X f 2), CA(X, 3), CA(X, 4), 
CA(X, 5), CA(X, 6), CA(X, 7), CA(Y, 0), CA(Y, 1), CA(Y, 2), C 
A(Y, 3), CA (Y , 4), CA(Y, 5), CA(Y, 6), CA(Y, 7) : NEXT 
1370 FOR X = TO NL STEP 10 : FOR Y = TO 1 

1380 INPUT# D, NV$(X, Y), NV$ (X + 1, Y), NV$i(X + 2, Y) , NV$ (X + 
3, Y), NV$(X + 4 f Y) f NV$(X + 5 r Y) , NV$ (X + 6, Y) , NV$ (X + 7, 
Y), NV$(X + 8, Y) f NV$(X + 9, Y) : NEXT Y, X 

1390 FOR X = TO RL : INPUT# D r RM(X, 0), RM (X , 1), RM(X, 2), R 
M(X, 3), RM(X, 4), RM(X, 5) f RS$ (X) : NEXT 

1400 FOR X = TO ML : INPUT# D, MS$(X) : NEXT 

1410 FOR X = TO IL : INPUT# D, IA$ (X) , IA(X) : I2(X) = IA(X) : 

NEXT : IF D = - 1 RETURN 
1420 OPEN "I", 1, "ADV/DAT" : PRINT : PRINT "Now loading data... 

One moment, please..." : PRINT : PRINT 
1430 INPUT# D, IL, CL, NL, RL, MX, AR , TT , LN , LT , ML, TR 
1440 DIM NV(1), CA(CL, 7), NV$ (NL, 1), IA$ (IL) , IA(IL), RS$ (RL) , 

RM (RL , 5), MS$(ML), NT$(1), I2(IL) 
1450 FOR X = TO CL STEP 2 : Y = X + 1 : INPUT* D, CA(X, 0), CA 
(X, 1), CA(X, 2), CA(X, 3), CA(X, 4), CA(X, 5), CA(X, 6), CA(X 
, 7), CA(Y, 0), CA(Y, 1), CA(Y, 2), CA(Y, 3), CA(Y, 4), CA(Y,'. 
5), CA(Y, 6), CA(Y, 7) : NEXT 
1460 FOR X = TO NL STEP 10 : FOR Y = TO 1 : FOR Z = TO 9 * 

LINEINPUT# D, NV$(X + Z, Y) : NEXT Z, Y, X 
1470 FOR X = TO RL : FOR Y = TO 5 : INPUT# D, RM(X, Y) : NEX 

T Y : LINEINPUT# D, RS$ (X) : NEXT X 
1480 FOR X = TO ML : LINEINPUT# D, MS$(X) : NEXT 
1490 FOR X = TO IL : LINEINPUT# D, IA$ (X) : INPUT# D, IA(X) : 
NEXT : CLOSE : RETURN 





252 BASIC Adventures 



Adventu